首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >registerForActivityResult似乎不会进口Kotlin

registerForActivityResult似乎不会进口Kotlin
EN

Stack Overflow用户
提问于 2022-10-20 11:44:19
回答 2查看 56关注 0票数 0

我试着在安卓工作室的安卓项目中使用registerForActivityResult函数。但是当我写"registerForActivityResult“来使用这个函数时,所显示的只是创建函数。我认为registerForActivityResult是安卓系统中的一个重新设计的功能,我不知道该怎么做才能让它正常工作。如果你们中的任何一个善良的灵魂可以帮助我,我会非常感激它,我可以随时收集更多的信息,如果需要!

更新I当前使用视频中提供的指南。我使用的是android.activity.1.3.1,不起作用的代码是:private val signInLauncher = registerForActivityResult ( FirebaseAuthUIActivityResultContract() ) { res -> this.signInResult(res) }

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-10-20 12:14:35

尝试手动转换到ComponentActivity

最后,我为这个函数创建了一个扩展:

代码语言:javascript
复制
fun <I, O> Activity.registerForActivityResult(
    contract: ActivityResultContract<I, O>,
    callback: ActivityResultCallback<O>
) = (this as ComponentActivity).registerForActivityResult(contract, callback)

似乎AndroidStudio有一个开放的bug:Bug:尽管有所需的依赖项,但无法在大型项目上找到registerForActivityResult

例如,在您的Activity中需要请求多个权限时,您可以这样做:

代码语言:javascript
复制
registerForActivityResult(
    ActivityResultContracts.RequestMultiplePermissions()
) { result ->
    // Do something with the result 
}
票数 0
EN

Stack Overflow用户

发布于 2022-10-20 12:04:49

如果你在使用作文,你试过rememberLauncherForActivityResult吗?

代码语言:javascript
复制
val launcher = rememberLauncherForActivityResult(ActivityResultContracts.WhatEverYoutWant) {...}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74139314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档