Intent跳转Activity方式
1.显式跳转以及传值
MainActivity关键代码
Intent startActIntent = new Intent(MainActivity.this, ThirdActivity.class);
startActIntent.putExtra("name", "peter");
startActIntent.putExtra("sex", "male");
startActivity(startActIntent);
ThirdActivity关键代码
//接收从FirstActicity传入的参数
Intent valueIntent = getIntent();
showText.setText(valueIntent.getStringExtra("name")+","+valueIntent.getStringExtra("sex"));
2.隐式跳转
MainActivity关键代码
//此处设置的值为在AndroidManifest.xml中设置的SecondActivity的intent-filter中设置的action属性
Intent intent = new Intent("com.xt.firstapp.TEST_INTENT");
//如若不指定该category,则系统默认添加android.intent.category.DEFAULT
intent.addCategory("android.intent.category.DEFAULT");
startActivity(intent);
AndroidManifest关键代码
<activity android:name=".activity.SecondActivity">
<intent-filter>
<action android:name="com.xt.firstapp.TEST_INTENT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
3.返回上一个Activity传递参数
MainActivity关键代码
Intent resultIntent = new Intent(MainActivity.this, SecondActivity.class);
//requestcode设置为1
startActivityForResult(resultIntent, 1);
//如果要从上一个返回activity取得数据,则需要覆写该方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case 1:
if (RESULT_OK == resultCode) {
Log.d("back_data-----", data.getStringExtra("back_data"));
Toast.makeText(MainActivity.this, data.getStringExtra("back_data"), Toast.LENGTH_LONG).show();
}
}
}
SecondActivity关键代码
Intent backIntent=new Intent();
backIntent.putExtra("back_data", "this is back data from second activity");
setResult(RESULT_OK, backIntent);
finish();
4.Intent除了跳转之外另外的用法
//Intent打开浏览器
Intent viewIntent = new Intent(Intent.ACTION_VIEW);
viewIntent.setData(Uri.parse("https://www.baidu.com"));
startActivity(viewIntent);
//Intent拨打电话
Intent dialIntent = new Intent(Intent.ACTION_DIAL);
dialIntent.setData(Uri.parse("tel:10086"));
startActivity(dialIntent);
Comments !