android - Kotlin : Type mismatch: inferred type is Intent? 但 Intent 是预期的

标签 android android-studio kotlin android-intent onactivityresult

我是 Kotlin 新手,我的 onActivityResult 方法中出现这样的错误

'类型不匹配:推断类型是 Intent?但 Intent 是预期的'

 override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode  != REQUEST_CODE)
            {
                return
            }
        if (resultCode != Activity.RESULT_OK)
        {
            Toast.makeText(this,"Screen cast permission denied",Toast.LENGTH_LONG).show()
            return
        }
        mediaProjectionCallBack = MediaProjectionCallback()
        mediaProjection = projectionManager!!.getMediaProjection(resultCode,data)
        mediaProjection!!.registerCallback(mediaProjectionCallBack,null)
        virtualDisplay = createVirtualDisplay()
        mediaRecorder!!.start()
    }

当我使用 onActivity 结果中的数据时,这一行出现错误,它给了我上面提到的错误:

mediaProjection = projectionManager!!.getMediaProjection(resultCode,data)

最佳答案

在 Kotlin 中存在可为 null 的类型,Intent?Intent 不是同一类型。 data:Intent? 表示您的 data 可以为 null

getMediaProjection(resultCode:Int, data:Intent) 方法希望您的数据为 Intent 类型,这意味着它不能接受 null 值(value)观。因此,您必须使用 !! 运算符将其转换为非空值,或者检查它是否不为空:

if(data != null){
    mediaProjection = projectionManager!!.getMediaProjection(resultCode,data)
}

在这种情况下,自动知道数据不为空,因此不会抛出错误。

关于android - Kotlin : Type mismatch: inferred type is Intent? 但 Intent 是预期的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64066159/

相关文章:

android - Xamarin In App Billing 插件无法连接

java - 如何在android studio 1.1.0中添加库

android-studio - Android Studio构建错误不会消失

java - Firebase 卡住并且无法与 Android Studio 连接

android - 您如何找到未单击的单选按钮?

java - 显示从edittext到textview的文本

android - 如何在应用程序处于后台时接收消息? (安卓、统一、GCM)

android - 如何在android中为 GridView 设置一行?

android - (x..x).map 在 kotlin android 中做什么

java - 无法附加文件发送电子邮件android 11