onActivityResult 中的请求代码错误 [英] Wrong requestCode in 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()
.
我得到了类似 0x40001
、0x20001
等的东西,并设置了一个随机的较高位.文档对此没有任何说明.有什么想法吗?
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
将被拥有 Fragment
的 Activity
更改.
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屋!