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()方法取得返回的数据。