kotlin四个入参的startActivityForResult方法
时间: 2024-08-16 11:09:31 浏览: 60
ActivityInKotlin:StartActivityForResult并在Kotlin中共享意图
在Kotlin中,`startActivityForResult()` 是一个用于启动另一个Activity并保持当前Activity的结果请求的关键方法,它通常用于用户交互操作,如从其他应用获取数据或进行某种授权操作。这个方法接受四个参数:
1. **目标Activity(Intent or Class<T>)**: 你要启动的新Activity或者是表示新Activity的 Intent 对象。你可以直接传入 Activity 的类名,或者创建一个 Intent 并设置 action 和数据。
2. **请求码(Int)**: 一个整数,用于标识这次启动请求。当目标Activity完成任务后,通过`onActivityResult()`方法返回结果时会附带此请求码。这是你在当前Activity中识别结果来源的方式。
3. **Bundle(可选)**: 可选的 Bundle 参数可以包含你需要传递给目标Activity的数据,以便后续处理。
4. **Options(Optional)**: 一个 Options 对象,主要用于指定启动Activity的一些额外选项,如是否支持动画等。但在大多数情况下可以直接忽略,因为默认行为通常是合理的。
示例:
```kotlin
val intent = Intent(context, AnotherActivity::class.java)
intent.putExtra("key", "value") // 添加额外数据
startActivityForResult(intent, REQUEST_CODE_OPEN_ANOTHER_ACTIVITY)
```
当你从目标Activity返回时,需要覆盖 `onActivityResult()` 来处理结果:
```kotlin
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == REQUEST_CODE_OPEN_ANOTHER_ACTIVITY && resultCode == RESULT_OK) {
val resultValue = data?.getStringExtra("result_key")
// 处理返回的数据
}
}
```
阅读全文