本帖最后由 liu 于 2018-12-11 15:55 编辑
Activity间的跳转和传值
实现Activity的跳转需要先来了解下intent,Intent的中文意思是"意图",在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。
写法:
[Java] 纯文本查看 复制代码 //第一个参数:上下文对象 第二个参数:是要跳转到的类
Intent intent = new Intent(this, 类名.class);
startActivity(intent);
Activity间的跳转和传值可分为:
1、显示跳转、隐式跳转
2、带返回值的跳转和不带返回值的跳转
本次先来说一下显示跳转和隐式跳转:
新建两个类MainActivity和SecondActivity来帮助理解,从MainActivity跳转到SecondActivity
显示跳转:
[Java] 纯文本查看 复制代码 //第一个参数:上下文对象 第二个参数:是要跳转到的类
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
或者:
[Java] 纯文本查看 复制代码 Intent intent = new Intent();
intent.setClass(MainActivity.this,SecondActivity.class);
startActivity(intent);
隐式跳转:
需要先在AndroidManifest.xml中为目标Activity设置Action、Category
AndroidManifest.xml:
[Java] 纯文本查看 复制代码 <activity android:name=".SecondActivity">
<intent-filter>
<action android:name="com.company.helloworld.SecondActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
跳转代码:
[Java] 纯文本查看 复制代码 Intent intent = new Intent();
intent.setAction("com.company.helloworld.SecondActivity");
startActivity(intent);
或者:
[Java] 纯文本查看 复制代码 Intent intent = new Intent("com.company.helloworld.SecondActivity");
startActivity(intent);
注意:action节点的name是自定义的,跳转时必须保证name的值和java代码中设置的action的值相同
|