Intent可以理解为“意图的抽象”,负责对应用中操作的动作、动作涉及数据及附加数据进行描述。一个Intent对象其实就是信息的捆绑,使用Intent可在多个Activity之间传递数据,充当信使,它有2个重要属性action和data,有2个常用的方法putExtra()---存储数据、getXXXExtra()---取出数据(XXX为存储的数据类型),举个例子,使用Intent在2个Activity之间传递信息,话不多说,先上图

Activity忠实的信使---Intent_intent

Activity忠实的信使---Intent_多个activity_02

Activity忠实的信使---Intent_intent_03

第一个Activity程序ActivityMain.java

public class ActivityMain extends Activity {
    /** Called when the activity is first created. */		
	static final int REQUEST_CODE = 1; 
    
    public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);		
		setContentView(R.layout.main);
		Button button1 = (Button) findViewById(R.id.button1);
		button1.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				//创建Intent对象,参数分别为上下文,要跳转的Activity类
				Intent intent1 = new Intent(ActivityMain.this, ActivitySub.class);
				intent1.putExtra("activitymain", "从'ActivityMain'进入");//放入需要传递的数据(键值对)
				//启动intent1对象,实现跳转。如果REQUEST_CODE>=0,就会调用onActivityResult()
				startActivityForResult(intent1, REQUEST_CODE);				  
			   }
			});
		setTitle("首次进入'ActivityMain'页面!");//setTitle()设置标题栏显示的内容
	}  
    @Override
     //requesCode用于标识对应于哪一个子模块,resultCode用于标识了子模块中哪一个intent携带的数据  
     //自ActivitySub返回时调用此方法
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		if (requestCode == REQUEST_CODE) {
			if (resultCode == RESULT_CANCELED)
				setTitle("取消");
			else if (resultCode == RESULT_OK) {
				String temp=null;
				//不需要声明新的Intent对象,直接用data就可以,这里的data是AcitivitySub传递过来的
				//保存临时状态信息的方法有SharedPreferences对象和Bundle对象
				 Bundle extras = data.getExtras();  
			        if (extras != null) {
			        	temp = extras.getString("activitysub");
			        }
				setTitle("现在是在ActivityMain里:"+temp);
			}
		}
	}
}

启动Activity的2种方式startActivityForResult()与startActivity()的不同之处在于:

1、startActivity( ) 

仅仅是跳转到目标页面,若是想跳回当前页面,则必须再使用一次startActivity( )。

2、startActivityForResult( ) 

可以一次性完成这项任务,当程序执行到这段代码的时候,假若从ActivityMain跳转到下一个ActivitySub,而当这个ActivitySub调用了finish()方法以后,程序会自动跳转回ActivityMain,并调用前一个ActivityMain中的onActivityResult( )方法。

第二个Activity程序ActivitySub.java

public class ActivitySub extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.subactivity);      
		Button button1 = (Button) findViewById(R.id.button2);
		button1.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				Bundle bundle = new Bundle();//新建一个Bundle类(key-value对)
				//putString()作用是向键值为“activity”中放入字符串数据“自...”
				bundle.putString("activitysub", "自'ActivitySub'返回");
				Intent intent2 = new Intent();
				intent2.putExtras(bundle);//将该bundle加入intent2对象
				setResult(RESULT_OK, intent2);//RESULT_OK用于标识此intent2
				finish();
			}
		});
		String data=null;
		//getIntent将该项目中包含的原始intent检索出来,将检索出来的intent赋值给一个Intent类型的变量  
		//getExtras()得到被赋值的变量所附带的额外数据
		 Bundle extras = getIntent().getExtras();//获得全部数据
	        if (extras != null) {
	        	 //getString()返回指定key的值 
	             data = extras.getString("activitymain");
	        }
		setTitle("现在是在'ActivitySub'里: "+data);
    }
}


布局文件中main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
	<Button android:id="@+id/button1"    	  
		android:layout_width="wrap_content"
		android:layout_height="wrap_content" 
		android:text="进入ActivitySub" />
		
</LinearLayout>

subactivity.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical" 
	android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	
	<Button android:id="@+id/button2"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content" 
		android:text="返回ActivityMain" />

</LinearLayout>


需要解释的注释都已给出Activity忠实的信使---Intent_信息_04