kotlin startActivityForResult的用法
时间: 2024-08-16 12:09:10 浏览: 54
在Kotlin中,`startActivityForResult()`是一个用于启动另一个Activity并且请求结果的方法,通常用于异步操作,如数据获取或者用户交互。它主要用于两个Activity之间的通信,主要步骤如下:
1. **发起活动**:在当前Activity中,你需要创建一个新的Intent并设置相关的数据,然后通过`startActivityForResult(Intent, requestCode)`方法启动新的Activity。其中,`Intent`是你想要启动的Activity,`requestCode`是你自定义的一个整数,用于后续区分不同的请求。
```kotlin
val intent = Intent(this, AnotherActivity::class.java)
startActivityForResult(intent, REQUEST_CODE)
```
这里`AnotherActivity`是要启动的Activity类,`REQUEST_CODE`是一个常量,代表了这次请求的唯一标识符。
2. **处理结果**:当新的Activity执行完毕后,会通过`onActivityResult(requestCode, resultCode, data)`回调通知你。你需要检查`requestCode`是否匹配,并检查`resultCode`表示的返回状态,如果状态正常,可以通过`data.data`获取到传递回来的数据。
```kotlin
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK) {
val returnedData = data?.getStringExtra("key")
// 使用returnedData
}
}
```
阅读全文