在Kotlin中,使用ActivityResultLauncher需要在Activity或Fragment的作用域内声明用于启动活动并处理结果的ActivityResultLauncher对象。例如,可以在Activity中添加以下代码:
private lateinit var someActivityResultLauncher: ActivityResultLauncher
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
someActivityResultLauncher = registerForActivityResult(
ActivityResultContracts.StartActivityForResult()
) { result ->
//处理结果
}
}
在Fragment中,需要使用FragmentActivityResultContract对象替换ActivityResultContracts.StartActivityForResult()。然后,可以使用someActivityResultLauncher启动活动并进行结果处理。需要记住的是,ActivityResultLauncher对象必须在作用域内声明,并且仅能在拥有相应作用域的函数中使用。