2015-10-12 74 views
0

我有一個具有導航抽屜的MainActivity。 如果我在導航抽屜中選擇一個項目,它將啓動一個對話框片段FragmentA。現在,如果我在FragmentA中更改了一些內容,我希望MainActivity在FragmentA被解散後反映新的更改。什麼是從FragmentA重新啓動MainActivity的最佳方式?如何從片段重新啓動活動?

回答

1

你的問題不清楚。我認爲FragmentA是一個DialogFragment。至少我假設它。

您可以覆蓋的onDestroy方法FragmentA寫

((MyActivity)getActivity()).refreshUI(); 

我們基本上,鑄造活動實例來我讓我們調用我們的方法,你可以刷新UI活動。

一個骯髒的方式是, 你也可以寫

Intent intent = new Intent(getContext, MyActivity.class); 
intent.setFlag(Intent.CLEAR_TASK); 
startActivity(intent); 

通過這種方式,我們又開始了我們的活動,殺死了一個這是在堆棧中。我假設你的數據是從另一個類似單身人士那裏持有的。否則你會失去它們,或者你可以使用第一種方法。

祝你好運。

+0

如果我使用Intent.FLAG_ACTIVITY_CLEAR_TASK,以前實例仍沒有被殺死。如果我按下後退按鈕,我會再獲得一個相同活動的實例 – Sammys

+1

您可以嘗試添加getActivity()。finish();然後調用Intent intent = new Intent(getContext,MyActivity.class); intent.setFlag(Intent.CLEAR_TASK); startActivity(intent); –

+0

讓你獲得成功嗎? –

1

使用此代碼

getActivity().recreate();