使用片段关闭活动

时间:2014-02-06 09:58:27

标签: android android-fragments

引言

当我点击按钮时,我ActivityA启动Fragment。使用intent我无法启动此片段,所以我创建了第二个活动,让我们称之为ActivityB,它充当ActivityAFragment之间的桥梁。

结构如下: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并使其可见。

2 个答案:

答案 0 :(得分:1)

您可以使用getActivity().finish()中的fragment方法关闭ActivityB

答案 1 :(得分:1)

在片段中

,请致电

Activity activity = getActivity();
activity.setResult(...);
activity.finish();

完成操作后。