保留活动中的片段状态

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了保留活动中的片段状态相关的知识,希望对你有一定的参考价值。

我有一个活动让我们说它的名字是MainActivity,那个活动有三个按钮,

button one launch FragmetA
button two launch FragmetB
button three launch FragmetC

当qazxsw poi最初发射时,qazxsw poi发射。

让我们说在MainActivity有一个按钮,在该按钮上点击一个新的活动FragmentA发射。当我点击FragmentB的后退按钮时,它会回到SecondActivitySecondActivity发射,我想要的是当我按下MainActivity的后退按钮时我想看看FragmentA,我怎么能这样做?

答案

只需保存在SecondActivity中打开的片段,并在FragmentB中显示正确的片段。例如:

onSaveInstanceState
另一答案

当MainActivity最初推出FragmentA时。

你如何从onCreate发射你的片段?你的@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (savedInstanceState != null) { switch (savedInstanceState.getString("fragment")) { case "a": //show fragment a break; case "b": //show fragment b break; ... } } } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putString("fragment", "a"); // in case if fragment a visible } 状态应该由MainActivity保留,所以如果你这样做:

Fragment

FragmentManager返回时你应该看到@Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (savedInstanceState == null) { // Only launch if Activity is not recreated. launchFragmentA(); } }

以上是关于保留活动中的片段状态的主要内容,如果未能解决你的问题,请参考以下文章

重定向时如何在 Safari 中保留 uri 片段?

java BottomBarNavigation代码保留片段状态

“不要保留活动” - 当应用程序恢复时,片段仅可见一秒钟

在一个活动中加载单个片段两次,从本地json文件中加载2个问题

Fragment 中的 Fragment 不能保留它们的值

单例片段或保存网页视图状态