OptionsMenu em uma tabactividade para uma guia específica
-
25-09-2019 - |
Pergunta
Meu problema é que tenho uma tabactividade, que tem 4 guias no momento. A primeira guia é um TAB de detalhes especiais, onde o usuário pode modificar alguns dados.
O problema é que, se eu adicionar um Menu de opções para a atividade, o OptionsMenu estará aparecendo em cada guia. Eu tentei verificar o atual mtabhost.getCurrentTabtag () no OnCreateOptionsMenu Mas isso não mudou nada. Então, como fazer isso?
(O código a seguir, que ainda mostra o OptionsMenu em cada guia)
public boolean onCreateOptionsMenu(Menu menu) {
if(mTabHost.getCurrentTabTag()==getString(R.string.tab_details)) {
boolean result = super.onCreateOptionsMenu(menu);
menu.add(0, EDIT_ID, 0, R.string.menu_edit).setIcon(R.drawable.edit);
return result;
}
return true;
}
public boolean onMenuItemSelected(int featureId, MenuItem item) {
switch (item.getItemId()) {
case EDIT_ID: {
Toast.makeText(this, "o.O", Toast.LENGTH_LONG).show();
}
}
return super.onMenuItemSelected(featureId, item);
}
Solução
Vejo que você está comparando strings (tags de fato) com ==, geralmente, isso é melhor para fazer isso com .equals()
método. Talvez isso resolva seu problema.
Para atualizar dinamicamente um menu de opções (da documentação):
Se você deseja alterar o menu de opções cada vez que ele abrir, você deve substituir o onPreparoptionsmenu ()