gpt4 book ai didi

android - fragment startActivityForResult 在回调 onActivityResult 时总是返回 resultCode 0 和 intent null

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:39:47 30 4
gpt4 key购买 nike

找遍了也有类似的帖子,但是没找到解决办法!

我的情况是我有一个 Activity A,它包含一个 fragment,我想从那个 fragment 开始一个新的 Activity B应该将一些值返回给 fragment

关于 fragment

startActivityForResult(mapIntent, ConstantsUtils.TOMAP_REQUEST_CODE);

Activity B 上,返回数据

Intent returnIntent = new Intent();
returnIntent.putExtra(SerializationConstants.isSearchSaved, mAbItemsShown.ordinal());
setResult (ConstantsUtils.SUCCESS_RETURN_CODE, returnIntent);
finish();

在 fragment 上

@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);

switch (requestCode) {

case ConstantsUtils.TOMAP_REQUEST_CODE:

if (resultCode == ConstantsUtils.SUCCESS_RETURN_CODE) {
//do some stuff
}
}
}
fragment 中的

onActivityResult 被成功调用,具有正确的 requestCoderesultCode 始终为 0 并且 intent始终为 null

我在 Activity A 下没有其他的 onActivityResult 实现。

事实上,我也尝试从 fragment 启动 activitygetActivity().startActivityForResult(mapIntent, ConstantsUtils.TOMAP_REQUEST_CODE);并在 Activity A 上实现 onActivityResult 但它发生相同,正确的 requestCode 但错误的 resultCodeintent

我正在使用 Sherlock Action Bar 所以我的 fragment 是一个 SherlockListFragment 所以我正在使用 support library (r18 )

你能帮帮我吗?谢谢

最佳答案

结果代码 0 是 RESULT_CANCELLED

The resultCode will be RESULT_CANCELED if the activity explicitly returned that, didn't return any result, or crashed during its operation.

此外,获取此代码的常见原因是在新任务中启动 Activity (检查您的 Intent 和 list 中的标志,这会导致新任务的开始)。

此外,如果您有父 Activity ,您应该设置它的结果代码而不是设置它的子 Activity 的结果代码(尝试 getParent 如果它不为空,则设置它的结果代码).

关于android - fragment startActivityForResult 在回调 onActivityResult 时总是返回 resultCode 0 和 intent null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18512264/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com