Android页面跳转有2种方式:显式跳转和隐式跳转
显示跳转:直接在Intent中指明需要跳转的组件。例如如果需要从MainActivty跳转至SecondActivity:
Intent intent =
new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
或者
Intent intent = new Intent();
intent.setClass(MainActivity.this,SecondActivity.class);
startActivity(intent);
隐式跳转:给Intent设置action和category,系统自动匹配跳转至配置有相同action和category的组件。
例如:在MainActivity的点击事件中给Intent设置action
:testskippage.intent.action.skip
catogory
:testskippage.intent.category.skip
Intent intent = new Intent();
intent.setAction("testskippage.intent.action.skip");
intent.addCategory("testskippage.intent.category.skip");
startActivity(intent);
对应AndroidManifest.xml文件如下
此时点击MainActivity中的按钮就能跳转至SecondActivity页面。
**这里需要注意的是:
1.在AndroidManifest.xml文件中如果SecondActivity没有配置<category android:name="android.intent.category.DEFAULT"/>
则点击按钮跳转会出ActivityNotFoundException
的异常。我的理解是在点击事件处虽然我们只设置了一个category的类型,但是系统会默认替我们加上android.intent.category.DEFAULT
,所以在清单文件中需要把两个category都配置上;
2.如果在代码中同时为intent设置了2个action,如intent.setAction("testskippage.intent.action.skip");
那么前面设置的action会被后面的action覆盖,即在AndroidManifest.xml中只需要配置”
intent.setAction("testskippage.intent.action.switch");<action android:name="testskippage.intent.action.switch"/>
“即可】**
在组件跳转的时候可以携带参数,使用Bundle或者Data都可以,这里不多说啦~~~。