在使用 registerForActivityResult 后,需要对返回结果进行处理,可以使用 onActivityResult 或,更好的方法是使用 ActivityResultCallback。以下是一个Kotlin示例:
// 声明一个 ActivityResultLauncher 对象
val someActivityResultLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
if (result.resultCode == Activity.RESULT_OK) {
// 处理返回值
val data: Intent? = result.data
}
}
// 启动活动并得到结果
val someIntent = Intent(this@MainActivity, SomeActivity::class.java)
someActivityResultLauncher.launch(someIntent)
// 处理返回的结果
someActivityResultLauncher .addOnActivityResultCallback { result ->
if (result.resultCode == Activity.RESULT_OK) {
// 处理返回值
val data: Intent? = result.data
}
}
这段代码演示了如何使用 ActivityResultCallback 处理返回的结果。通过添加回调,在 onActivityResult 之外处理返回的结果,从而使代码更简洁和易于阅读。
上一篇:AndroidKotlinRecyclerViewStackFromEnd不起作用
下一篇:AndroidkotlinretrofitDefaultDispatcher-worker-1,SLHandshakeException:Chainvalidationfailed