我有一项活动让我们说它的名字是MainActivity
,该活动有三个按钮,
button one launch FragmetA
button two launch FragmetB
button three launch FragmetC
最初MainActivity
发布FragmentA
时启动。
假设FragmentB
中有一个按钮,在该按钮上点击一个新的活动SecondActivity
启动。当我点击SecondActivity
的后退按钮时,它会返回到MainActivity
并FragmentA
启动,我想要的是当我按SecondActivity
的后退按钮时,我希望看到{ {1}},我该怎么做?
答案 0 :(得分:1)
只需保存在onSaveInstanceState
中打开的片段,并在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
}
答案 1 :(得分:1)
当MainActivity最初推出FragmentA时。
如何从MainActivity
启动片段?您的Fragment
州应该由FragmentManager
保留,如果您这样做:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState == null) {
// Only launch if Activity is not recreated.
launchFragmentA();
}
}
从SecondActivity
返回时,您应该看到FragmentB
。