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 !