Optionsmenü in einem TabActivity für einen bestimmten Tab
-
25-09-2019 - |
Frage
Mein Problem ist, dass ich eine TabActivity bekommen haben, die jetzt 4 Tabs hat. Der erste Tab ist eine spezielle Einzelheiten-Tab, in dem der Benutzer einige Daten ändern könnte.
Das Problem ist, dass, wenn ich ein Optionsmenü für die Aktivität hinzufügen, dass das Optionsmenü auf jedem Tab erscheint. Ich habe versucht, die aktuellen mTabHost.getCurrentTabTag () in dem onCreateOptionsMenu , aber das ändert nichts zu überprüfen. So, wie das zu tun?
(Der folgende Code, der immer noch das Optionsmenü auf jedem Tab zeigt)
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);
}
Lösung
Ich sehe, dass Sie Strings (Tags in der Tat) vergleichen mit ==, in der Regel, dies schöner ist, dass mit .equals()
Methode zu tun. Vielleicht wird es Ihr Problem lösen.
Um dynamisch ein Optionsmenü zu aktualisieren (aus der Dokumentation):
Wenn Sie die Optionen ändern möchten Menü jedes Mal öffnet, müssen Sie außer Kraft setzen die onPrepareOptionsMenu ()