完成发送电子邮件的活动后如何返回

时间:2013-04-04 08:23:22

标签: android android-activity start-activity

我有一个有发送按钮的片段。

点击发送按钮后,活动开始从设备中选择电子邮件客户端。

一旦我们选择了电子邮件客户端并发送邮件,它就会按预期再次返回到片段。

但是我们的邮件发送任务已经完成,因此无需片段视图。

因此,我们希望在邮件成功发送后返回上一个活动。

怎么做?

我试过了:

getActivity().getSupportFragmentManager().popBackStack();

但这没效果。

点击发送按钮的代码是:

view.findViewById(R.id.sendbtn).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
startActivityForResult(Intent.createChooser(email, "Choose an Email client :"),2);
getActivity().getSupportFragmentManager().popBackStack(); //this is not working to go back.
}
});

1 个答案:

答案 0 :(得分:0)

您可以尝试在发送邮件后删除片段(已修复):

getActivity().getSupportFragmentManager().beginTransaction().remove(MailFragment.this).commit();

但请记住,只有使用FragmentTransaction.add()方法动态添加它才能将其删除。如果片段是以XML格式添加的,则remove方法将无效。

要动态添加片段,您应该这样做:

MailFragment mailFragment = new MailFragment(); 

FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.containerForFragments, mailFragment).commit();

然后,您可以通过.remove()方法删除此片段。

顺便说一下,你可以尝试隐藏它(不会从内存中删除)而不是删除片段:

 getActivity().getSupportFragmentManager().beginTransaction().hide(MailFragment.this).commit();