安卓registerForActivityResult()函数是干什么的
时间: 2024-05-04 12:02:59 浏览: 16
`registerForActivityResult()` 函数是 Android 中 Activity 或 Fragment 与其它组件之间进行交互的一种方式。通过该函数,我们可以注册一个 ActivityResultCallback 对象来处理 startActivityForResult() 方法的结果。当 Activity 或 Fragment 执行 startActivityForResult() 方法并返回结果时,将触发 ActivityResultCallback 对象的回调方法,我们可以在回调方法中获取结果并进行相应的处理。
例如,我们可以在 Activity 或 Fragment 中使用 `registerForActivityResult()` 函数来注册一个获取图片的 Intent。当用户选择图片并返回时,将触发 ActivityResultCallback 中的回调方法。在回调方法中,我们可以获取返回的图片并显示在 UI 中。
下面是一个简单的示例代码:
```kotlin
// 在 Activity 或 Fragment 中注册获取图片的 Intent
val getImage = registerForActivityResult(ActivityResultContracts.GetContent()) { uri: Uri? ->
// 处理返回的图片
imageView.setImageURI(uri)
}
// 在某个按钮的点击事件中触发获取图片的 Intent
button.setOnClickListener {
getImage.launch("image/*")
}
```
在上述代码中,我们使用 `registerForActivityResult()` 函数注册了一个获取图片的 Intent,并在某个按钮的点击事件中触发了该 Intent。当用户选择图片并返回时,将触发 `getImage` 对象的回调方法,我们可以在回调方法中获取返回的图片 URI 并显示在 imageView 中。