如何从片段重启活动?

Sam*_*mys 2 android android-fragments android-activity

我有一个MainActivity,它有一个导航抽屉.如果我在导航抽屉中选择一个项目,它会启动一个对话框片段FragmentA.现在,如果我在FragmentA中更改了一些内容,我希望一旦FragmentA被解散,MainActivity就会反映出新的变化.从FragmentA重启MainActivity的最佳方法是什么?

小智 8

使用此代码

getActivity().recreate();
Run Code Online (Sandbox Code Playgroud)


Emr*_*ürk 6

你的问题不明确.我认为FragmentA是一个DialogFragment.至少我假设它.

您可以在FragmentA中覆盖onDestroy方法并编写

((MyActivity)getActivity()).refreshUI();
Run Code Online (Sandbox Code Playgroud)

我们基本上,将活动实例转换为我们的活动,让我们调用我们可以刷新ui的方法.

一个肮脏的方式是,你也可以写

Intent intent = new Intent(getContext, MyActivity.class);
intent.setFlag(Intent.CLEAR_TASK);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

通过这种方式,我们再次开始了我们的活动并杀死了一个背靠背的活动.我假设您的数据是从另一个类似于单身的类中保留的.否则你会失去它们,或者你可以使用第一种方法.

祝你好运.