保留活动中的片段状态
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了保留活动中的片段状态相关的知识,希望对你有一定的参考价值。
我有一个活动让我们说它的名字是MainActivity
,那个活动有三个按钮,
button one launch FragmetA
button two launch FragmetB
button three launch FragmetC
当qazxsw poi最初发射时,qazxsw poi发射。
让我们说在MainActivity
有一个按钮,在该按钮上点击一个新的活动FragmentA
发射。当我点击FragmentB
的后退按钮时,它会回到SecondActivity
和SecondActivity
发射,我想要的是当我按下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();
}
}
。
以上是关于保留活动中的片段状态的主要内容,如果未能解决你的问题,请参考以下文章
java BottomBarNavigation代码保留片段状态