Atualizar o estado selecionado da gaveta de navegação após pressionar novamente
Qual é a maneira correta de lidar com o estado selecionado da gaveta de navegação após pressionar novamente?
Eu tenho uma gaveta de navegação com n entradas (em uma lista) como o exemplo do SDK no Android Studio. Quando clico nas entradas da gaveta de navegação, quero que elas sejam adicionadas à pilha de trás, para que eu possa voltar a elas.
Em onNavigationDrawerItemSelected (int pos), tenho
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();
Quando clico na segunda entrada na gaveta, B é selecionado e substitui A. Se clicar no botão Voltar posteriormente, o Fragmento A é exibido novamente como deveria, mas B ainda está selecionado na gaveta de navegação.
Como posso atualizar o status de seleção da gaveta depois de pressionar novamente?
De alguma forma eu preciso de uma chamada para mDrawerListView.setItemChecked (position, true); ou NavigationDrawerFragment.selectItem (int position). Mas para qual posição? Como me lembro?
Interceptar com onBackPressed?
@Override
public void onBackPressed() {}
Mas como sei qual fragmento está ativo novamente? E a qual posição corresponde.
Existe alguma solução fácil que eu sou cego de ver? Parece que usar de volta em combinação com a gaveta de navegação e atualizar o status da seleção é um padrão.