1、显式Intent

 button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);  
startActivity(intent);
}
});

2、隐式Intent

  指定一系列的action和category.每个intent中只能指定一个action,可以指定多个category。

  在AndroidManifest中添加

        <activity android:name=".SecondActivity" >
<intent-filter>
<action android:name="com.example.activitytest.ACTION_START"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>

  调用addCategory()添加category。

  隐式intent其他用法:

  解析Uri

 button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);
}
});

  <data>标签:用于指定当前活动相应说明类型的数据。

3、传递数据

(1)向下一个活动传递数据

  FirstActivity

 public void onClick(View view) {
String data = "Hello World";
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
intent.putExtra("extra_data",data);
startActivity(intent);
}

  secondActivity

     Intent intent = getIntent();    //获得启动secondActivity的intent
String data = intent.getStringExtra("extra_data");
Log.d("SecondActivity",data);

(2)返回数据给上一个活动

  FirstActivity通过startActivityForResult()方法启动SecondActivity,在SecondActivity被销毁之后会回调上一个活动的OnActivityResult()方法,所以需要在FirstActivity中重写此方法。

  如果是通过back键返回FirstActivity,则重写onBackPressed()方法取得返回的数据。

  

  

05-07 15:55