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);
 } 
War es hilfreich?

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 ()

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top