Android:从片段调用时如何从活动中获取返回结果?

Posted

技术标签:

【中文标题】Android:从片段调用时如何从活动中获取返回结果?【英文标题】:Android: How to get return result from activity when calling from Fragment? 【发布时间】:2013-09-27 09:18:29 【问题描述】:

我有一个 Fragment 使用以下方式调用另一个 Activity:

ProductEditionMaintenanceActivity.class);
Bundle extras = new Bundle();
extras.putString("productCode", productCode);
extras.putInt("productEditionID", 0);
intent.putExtras(extras);
getActivity().startActivityForResult(intent, 1);

并从活动中返回:

Intent resultIntent = new Intent();
setResult(Activity.RESULT_OK, resultIntent);
finish();

我尝试在 Fragment 中使用以下内容

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)

    //Do something

但是,我猜测创建的意图传递了片段的父 Activity 的引用,因此片段上的 onActivityResult 不会被调用。 如果是这种情况,我需要怎么做才能让片段从被调用者 Activity 中获取结果?

【问题讨论】:

【参考方案1】:

片段onActivityResult 将在主机活动onActivityResult 之后被调用,只要从主机活动中调用super.onActivityResult。详情请见https://***.com/a/6147919/552902

【讨论】:

以上是关于Android:从片段调用时如何从活动中获取返回结果?的主要内容,如果未能解决你的问题,请参考以下文章

从片段调用活动方法

如何从Android中没有活动和片段的函数调用DialogFragment?

Android:从片段调用活动

如何从活动中调用片段方法?

使后退按钮从活动返回到Android中的片段

如何从片段返回主要活动