我试图在导航抽屉的各个片段之间切换时保存状态。例如:我从A片段开始触发一些事件,然后切换到B片段。然后当我从B片段切换回A片段时,我希望看到与切换前相同的A片段状态。
我尝试使用onSavedInstanceState(Bundle savedInstanceState)函数,但是它只在片段生命周期中方向改变时调用。每当我切换到新片段时都会创建一个新的片段,我无法弄清楚如何保存片段中的数据并在另一个访问时重新加载它们。
我也不想使用backstack(),因为它会删除直到我想要恢复的片段的所有片段。
下面是我如何调用导航抽屉上的片段。
我尝试使用onSavedInstanceState(Bundle savedInstanceState)函数,但是它只在片段生命周期中方向改变时调用。每当我切换到新片段时都会创建一个新的片段,我无法弄清楚如何保存片段中的数据并在另一个访问时重新加载它们。
我也不想使用backstack(),因为它会删除直到我想要恢复的片段的所有片段。
下面是我如何调用导航抽屉上的片段。
private void selectItem(int position) {
Fragment fragment;
String TAG;
switch (position) {
case 0:
fragment = new FragmntA();
TAG = "A";
break;
case 1:
fragment = new FragmentB();
TAG = "B";
break;
case 2:
fragment = new FragmentC();
TAG = "C";
break;
case 3:
fragment = new FragmentD();
TAG = "D";
break;
case 4:
fragment = new FragmentE();
TAG = "E";
break;
default:
fragment = new FragmentA();
TAG = "A";
}
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.replace(R.id.content_frame, fragment, TAG);
ft.commit()
我不知道在片段生命周期的什么阶段可以保存其状态。任何帮助都将不胜感激。谢谢。