[英]Android: How to handle onActivityResult if it's overridden in multiple activitys?
在一个名为 A 的活动中,它有 startActivityForResult(),这个活动只是打开我的照片库并选择一个图像。 在同一个活动 A 中,它覆盖 onActivityResult 以抓取选定的图像。
但是,我有另一个名为 B 的活动,它恰好也覆盖了 onActivityResult ,似乎活动 B 消耗了该结果,并且由于这个问题,活动 A 永远不会得到结果。
在不删除 B 中的 onActivityResult 的情况下,我能做些什么来让结果 go 到活动 A 而不是活动 B?
requestCode
正是为此而引入的。 在开始活动以获得结果时,您总是需要传递一个requestCode
:
val selectImageIntent = /* some intent to select an image */
startActivityForResult(selectImageIntent, REQUEST_CODE_SELECTED_IMAGE)
您可以使用它来确定此结果是否适合您:
private val REQUEST_CODE_SELECTED_IMAGE = 1000
private val REQUEST_CODE_CAMERA = 2000
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if(requestCode == REQUEST_CODE_SELECTED_IMAGE){
// Handle the result of REQUEST_CODE_SELECTED_IMAGE
} else {
// Let another activity handle the result
super.onActivityResult(requestCode, resultCode, data)
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.