registerForActivityResult的用法
时间: 2024-05-04 15:03:04 浏览: 170
startActivityForResult使用方式
`registerForActivityResult` 是 Android Jetpack 中的一种简化活动结果处理的方式。它可以帮助我们更容易地处理 startActivityForResult 返回的结果。下面是一个示例用法:
首先,我们需要定义一个 `ActivityResultLauncher` 对象来处理结果:
```kotlin
private val someActivityResultLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
if (result.resultCode == Activity.RESULT_OK) {
// 处理返回的结果
val data: Intent? = result.data
}
}
```
然后,当需要启动一个活动并等待返回结果时,我们可以使用 `someActivityResultLauncher.launch(intent)` 方法:
```kotlin
val intent = Intent(this, SomeActivity::class.java)
someActivityResultLauncher.launch(intent)
```
在活动返回结果后,`registerForActivityResult` 中定义的 lambda 表达式将被调用,并且可以在其中检查结果并进行相应的处理。
阅读全文