Я пытаюсь сохранить состояние фрагментов навигационного ящика, когда переключаюсь между различными фрагментами в навигационном ящике. Например: я начинаю с фрагмента A, запуская некоторые события, затем переключаюсь на фрагмент B. Затем я хочу видеть то же состояние фрагмента A, когда я переключаюсь обратно на фрагмент A из фрагмента B.
Я попытался использовать onSavedInstanceState (Bundle saveInstanceState), но он вызывается только при изменении ориентации в жизненном цикле фрагмента. Каждый раз, когда я переключаюсь на новый фрагмент, создается новый фрагмент, и я не могу понять, как сохранить данные из фрагмента и перезагрузить их при следующем посещении.
Я также не хочу использовать 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()
Я не знаю, есть ли какая-то точка в жизненном цикле фрагмента, где я могу сохранить его состояние. Любая помощь будет оценена по достоинству. Спасибо.