2015-10-12 50 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();