簡體   English   中英

完成發送電子郵件的活動后如何返回

[英]how to go back after finishing the activity of sending email

我有一個帶有發送按鈕的片段。

單擊發送按鈕后,活動開始以從設備選擇電子郵件客戶端。

選擇電子郵件客戶端並發送郵件后,它將按預期再次返回到片段。

但是,由於我們的郵件發送任務已完成,因此無需具有片段視圖。

因此,我們希望在成功發送郵件后返回上一個活動。

怎么做?

我試過了:

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.
}
});

發送郵件(固定)后,您可以嘗試刪除該片段:

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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM