引言
当我点击按钮时,我ActivityA
启动Fragment
。使用intent我无法启动此片段,所以我创建了第二个活动,让我们称之为ActivityB
,它充当ActivityA
和Fragment
之间的桥梁。
结构如下:ActivityA --> ActivityB --> Fragment
功能
该功能来自ActivityA
,开始Fragment
,请求一些数据,并将此数据恢复为ActivityA
。
为此,我使用startActivityForResult()
中的ActivityA
来呼叫ActivityB
。在ActivityB
中,我以这种方式启动Fragment
:
Fragment fragment = new Fragment();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.add(android.R.id.content, fragment).commit();
当我完成Fragment
上必须执行的操作后,我会使用setResult()
将数据发送回ActivtyA
。
问题
问题是,当我开始ActivityB
初始化Fragment
时,将数据从Fragment
返回到ActivityA
时,ActivityB
仍然是一个已打开,ActivityA
仍在后台。
这使我无法处理请求的数据,因为ActivityA
会在后台继续执行此操作。
所以,我需要知道如何在ActivityB
完成操作时关闭Fragment
,以便返回ActivityA
并使其可见。
答案 0 :(得分:1)
您可以使用getActivity().finish()
中的fragment
方法关闭ActivityB
。
答案 1 :(得分:1)
,请致电
Activity activity = getActivity();
activity.setResult(...);
activity.finish();
完成操作后。