Обновить выбранное состояние навигационной панели после повторного нажатия
Как правильно обрабатывать выбранное состояние навигационной панели после повторного нажатия?
У меня есть навигационный ящик с 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() {}
Но как мне узнать, какой фрагмент снова активен? И какой позиции это соответствует.
Есть ли какое-то простое решение, которое я слеп? Кажется, что использование back в сочетании с навигационной панелью и обновление статуса выбора является стандартным шаблоном.