我正在从我的片段开始一个新的 Activity

startActivityForResult(intent, 1);

并想在Fragment的父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
    }
}

问题是我从来没有收到刚刚发布到requestCodestartActivityForResult()

我得到了类似0x400010x20001等的东西,并随机设置了更高的位。该文档没有对此发表任何评论。有任何想法吗?

最佳答案

您正在从startActivityForResult()调用Fragment。执行此操作时,requestCode将由拥有ActivityFragment更改。

如果您想在 Activity 中获取正确的resultCode,请尝试以下操作:

改变:

startActivityForResult(intent, 1);

到:
getActivity().startActivityForResult(intent, 1);

关于android - onActivityResult中的requestCode错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10564474/

10-10 01:09