*Intent称为意图,是Android各大组件连接的桥梁
1.Activity页面跳转
同一个包内
Intent intent = new Intent();
intent.setClass(MainActivity.this, SecondActivity.class);
MainActivity.this.startActivity(intent);
不同包内
(1)明确的Intent
Intent intent = new Intent();
ComponentName comp = new ComponentName("包名(应用本身所在的包,通过AndroidManifest.xml中package属性查看)","包名.类名(Activity所在的包)");
//或者intent.setClassName("包名","包名.类名");
intent.setComponent(comp);
startActivity(intent);
(2)不明确的Intent
Intent intent = new Intent();
intent.setAction(Intent.ACTION_MAIN); // 应用程序的入口
intent.addCategory(Intent.CATEGORY_HOME); // 桌面的应用程序
startActivity(intent);
然后在AndroidManifest.xml中注册该过滤条件
<activity
android:name=".OtherActivity"
android:label="OtherActivity" >
<intent-filter>
<action android:name="action_name" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
注:
*第一个Activity是外部通过不明确的Intent跳转的
*要设置第一个被启动的Activity,需要设置如下属性
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
2.Activity页面跳转传值
第一种方法:(Intent)
发送方:
Intent intent = new Intent();
intent.putExtra("name", "诸葛亮");
intent.putExtra("age", 50);
intent.putExtra("IQ", 200.0f);
intent.setClass(MainActivity.this, SecondActivity.class);
MainActivity.this.startActivity(intent);
接受方:
Intent intent = getIntent();
String name = intent.getStringExtra("name");
int age = intent.getIntExtra("age", 0);
float IQ = intent.getFloatExtra("IQ", 0.0f);
textview2.setText("name:"+name+",age:"+age+",IQ:"+IQ);