前言
Jetpack Compose中的页面跳转和传值和之前没什么不同。
要注意的是
组件内尽量不要进行页面的跳转,组件可以设置回调方法,在Activity中进行页面跳转操作。
页面跳转
1 | val intent = Intent(baseContext, AppDetailActivity::class.java) |
这里要注意的是,获取上下文使用的是baseContext
。
页面传值
基本类型
1 | intent.putExtra(String name, boolean value); |
取值
1 | Intent intent = getIntent(); |
对象
转JSON字符串
1 | intent.putExtra(String name, String value); |
获取
1 | String str = intent.getStringExtra(String name) |
使用Serializable
注意
需要API33及以上版本。
在 Android 中,可以通过 Intent 来传递自定义对象,前提是该对象必须实现 Serializable接口。
Serializable接口允许对象在不同组件间进行序列化和反序列化,以便通过 Intent 进行传递。
1 | public class Student implements Serializable{ |
kotlin
1 | import java.io.Serializable |
传递方法就是:
1 | intent.putExtra(String name, Serializable value); |
获取
1 | intent.getSerializableExtra("appModel",Student::class.java) |
使用单例
1 | object CommonData { |
页面返回
1 | onBackPressedDispatcher.onBackPressed() |