在 Intent 中覆盖 OnActivityResult 不起作用 - kotlin
Override OnActivityResult inside Intent is not working - kotlin
我正在覆盖我的 OnActivityResult 以控制应用程序中的某些流程。
报错的问题是overriding nothing
。
这是我正在使用的代码:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
}
当我在 Intent 之后添加非空保护时错误才消失,代码如下:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
}
但这会导致函数本身出现 kotlin.KotlinNullPointerException
错误。
方法 onActivityResult
的签名是:
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data)
如您所见,Intent data
可以为空。因此,为了正确覆盖该方法,您必须使用:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?)
由于数据可以为空,因此每次需要检查意图时都必须使用安全调用运算符?
。
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
val action = data?.action
...
}
我正在覆盖我的 OnActivityResult 以控制应用程序中的某些流程。
报错的问题是overriding nothing
。
这是我正在使用的代码:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
}
当我在 Intent 之后添加非空保护时错误才消失,代码如下:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
}
但这会导致函数本身出现 kotlin.KotlinNullPointerException
错误。
方法 onActivityResult
的签名是:
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data)
如您所见,Intent data
可以为空。因此,为了正确覆盖该方法,您必须使用:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?)
由于数据可以为空,因此每次需要检查意图时都必须使用安全调用运算符?
。
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
val action = data?.action
...
}