首页 > 代码库 > android之activity间传输数据

android之activity间传输数据

MainActivity如下:

package com.example.helloworld;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

	private Button main_button1 = null;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		//初始化布局文件中控件到逻辑控制文件中
		findView();

		//声明意图(计划),从哪一个Acivity传递到另外哪一个Activity
		final Intent intent = new Intent(this, TestActivity.class);
		//往Intent中存放简单参数
		intent.putExtra("username", "i am little android");
		
		//往Intent中存放bundle对象
		Bundle bundle = new Bundle();
		bundle.putString("password", "123456");
		intent.putExtras(bundle);
		
		//采取匿名函数为按钮设置单击事件
		main_button1.setOnClickListener(new OnClickListener() {
			public void onClick(View view) {
				//转到下一个activity
				MainActivity.this.startActivity(intent);
			}
		});
	}

	/**
	 * Activity创建时初始化控件
	 */
	private void findView(){
		main_button1 = (Button) findViewById(R.id.main_button1);
	}

}


MainActivity布局如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/main_button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="38dp"
        android:text="传递数据到TestActivty" />

</RelativeLayout>

TestActivity如下:

package com.example.helloworld;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class TestActivity extends Activity{

	private TextView tv1_test = null;
	private TextView tv2_test = null;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.test);
		findView();
		
		//得到前一个Activity传递的Intent
		Intent intent = getIntent();
		String username = intent.getStringExtra("username");
		//得到前一个activity封装在intent中的bundle
		Bundle bundle = intent.getExtras();
		String password = (String) bundle.get("password");
		
		tv1_test.setText(username);
		tv2_test.setText(password);
	}
	
	/**
	 * Activity创建时初始化控件
	 */
	private void findView(){
		tv1_test = (TextView) findViewById(R.id.test_tv1);
		tv2_test = (TextView) findViewById(R.id.test_tv2);
	}

}

TestActivity布局如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@android:color/white">
    
    <TextView
        android:id="@+id/test_tv1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
    <TextView
        android:id="@+id/test_tv2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
</LinearLayout>

AndroidManifest.xml文件中别忘了配置activity

        <activity
            android:name="com.example.helloworld.MyMainActivity"
            android:label="@string/title_activity_my_main" >
        </activity>
         <activity
            android:name="com.example.helloworld.TestActivity">
        </activity>