Каков правильный способ обработки выбранного состояния ящика навигации после возврата назад?
У меня есть ящик навигации с n записями (в списке), как образец SDK в Android Studio. Когда я нажимаю на записи ящика навигации, я хочу, чтобы они были добавлены в задний стек, поэтому я могу вернуться к ним.
В onNavigationDrawerItemSelected (int pos) у меня есть
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
if (position == 0) {
transaction.replace(R.id.container, new FragmentA());
} else if (position == 1) {
transaction.replace(R.id.container, new FragmentB());
} else {
transaction.replace(R.id.container, new FragmentC());
}
transaction.addToBackStack(null);
transaction.commit();
Когда я нажимаю на вторую запись в ящике, B выбирается и заменяет A. Если после этого я нажимаю кнопку "Назад", фрагмент A отображается снова, как следует, но B все еще выбран в навигационном ящике.
Как я могу получить статус выбора ящика после нажатия?
Как-то мне нужно позвонить в mDrawerListView.setItemChecked(position, true); или NavigationDrawerFragment.selectItem(int position). Но на какую позицию? Как я его помню?
Перехват с onBackPressed?
@Override
public void onBackPressed() {}
Но как узнать, какой фрагмент активен снова? И в какую позицию это соответствует.
Есть ли какое-то легкое решение, о котором я вижу? Кажется, что использование обратной связи в сочетании с навигационным ящиком и обновление статуса выбора является стандартным шаблоном.