onActivityResult 中的请求代码错误 [英] Wrong requestCode in onActivityResult

查看:21
本文介绍了onActivityResult 中的请求代码错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在从我的 Fragment 开始一个新的活动

I'm starting a new Activity from my Fragment with

startActivityForResult(intent, 1);

并希望在 Fragment 的父 Activity 中处理结果:

and want to handle the result in the Fragment's parent Activity:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    Log.d(TAG, "onActivityResult, requestCode: " + requestCode + ", resultCode: " + resultCode);
    if (requestCode == 1) {
        // bla bla bla
    }
}

问题是我从来没有收到我刚刚发布到 startActivityForResult()requestCode.

The problem is that I never got the requestCode I've just posted to startActivityForResult().

我得到了类似 0x400010x20001 等的东西,并设置了一个随机的较高位.文档对此没有任何说明.有什么想法吗?

I got something like 0x40001, 0x20001 etc. with a random higher bit set. The docs don't say anything about this. Any ideas?

推荐答案

您正在从您的 Fragment 调用 startActivityForResult().执行此操作时,requestCode 将被拥有 FragmentActivity 更改.

You are calling startActivityForResult() from your Fragment. When you do this, the requestCode is changed by the Activity that owns the Fragment.

如果你想在你的活动中获得正确的resultCode,试试这个:

If you want to get the correct resultCode in your activity try this:

变化:

startActivityForResult(intent, 1);

致:

getActivity().startActivityForResult(intent, 1);

这篇关于onActivityResult 中的请求代码错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆