我正在重写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
...
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句