我长期以来一直在努力解决这个问题,任何帮助都会受到赞赏。
我有一个包含3个片段的主要活动(换句话说,我有一个带有三个标签的活动)。在第三个片段我有一个按钮通过意图启动一个新的活动。这项新活动是QR扫描仪,因此它基本上会调用相机并等待相机找到合适且有效的QR码。如何将结果返回到我的片段?
我的按钮的 onClick 方法,该方法位于Fragment3中的 onCreate 方法中,它扩展了Fragment类:
Intent intent = new Intent(getActivity(), ZBarScannerActivity.class);
startActivityForResult(intent, 1);
我的MainActivity的onActivityResult方法:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if (resultCode != Activity.RESULT_CANCELED)
{
if (resultCode == Activity.RESULT_OK)
{
String result = data.getStringExtra(ZBarConstants.SCAN_RESULT);
}
}
}
从此开始,我无法弄清楚如何将这个结果反馈给Fragment3的onActivityResult方法。提前谢谢。
答案 0 :(得分:1)
FragmentManager.BackStackEntry backEntry=getFragmentManager().getBackStackEntryAt(getActivity().getFragmentManager().getBackStackEntryCount()-1);
String str=backEntry.getName();
Fragment fragment=getFragmentManager().findFragmentByTag(str);
这将为您提供片段的最新实例。确保您添加了这样的backstack条目。
fragmentTransaction.addToBackStack(someName);
或者在添加片段时,您可以提供标记。如下所示
public abstract FragmentTransaction add (int containerViewId, Fragment fragment, String tag)