繁体   English   中英

Android:如果 onActivityResult 在多个活动中被覆盖,如何处理它?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM