我正试图在android studio中制作的android项目中使用函数registerForActivityResult。但当我写";registerForActivityResult";要使用函数,所显示的只是创建函数。我以为registerForActivityResult是安卓系统中的一个重制函数,但我不知道该怎么做才能让它工作。如果你们中任何一个善良的灵魂能帮助我,我将不胜感激,如果需要,我可以随时收集更多信息!
更新我目前正在使用此视频中提供的指南。我使用的是android.activity1.3.1,不起作用的代码是:private val signInLauncher = registerForActivityResult ( FirebaseAuthUIActivityResultContract() ) { res -> this.signInResult(res) }
尝试手动转换为ComponentActivity
。
我最终为这个功能创建了一个扩展:
fun <I, O> Activity.registerForActivityResult(
contract: ActivityResultContract<I, O>,
callback: ActivityResultCallback<O>
) = (this as ComponentActivity).registerForActivityResult(contract, callback)
AndroidStudio似乎有一个开放的错误:错误:尽管有所需的依赖项,但无法在大型项目上找到registerForActivityResult
例如,在您的Activity
中,当您需要请求多个权限时,您可以执行以下操作:
registerForActivityResult(
ActivityResultContracts.RequestMultiplePermissions()
) { result ->
// Do something with the result
}
如果使用compose,您是否尝试过rememberLauncherForActivityResult
?
val launcher = rememberLauncherForActivityResult(ActivityResultContracts.WhatEverYoutWant) {...}