Question

Mon problème est que j'ai un TabActivity, qui a 4 onglets en ce moment. Le premier onglet est un spécial Détails Tab, où l'utilisateur peut modifier certaines données.

Le problème est que si j'ajoute un Optionsdu pour l'activité, que le Optionsdu apparaît sur tous les onglets. J'ai essayé de vérifier le courant mTabHost.getCurrentTabTag () onCreateOptionsMenu , mais que rien n'a changé. Alors, comment faire?

(Le code suivant, qui montre encore la Optionsdu sur chaque onglet)

 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);
 } 
Était-ce utile?

La solution

Je vois que vous comparez des chaînes (tags en fait) avec ==, le plus souvent, cela est plus agréable de le faire avec la méthode .equals(). Peut-être qu'il va résoudre votre problème.
Pour mettre à jour dynamiquement un menu d'options (de la documentation):

  

Si vous voulez modifier les options   Menu chaque fois qu'il ouvre, vous devez   remplacer le onPrepareOptionsMenu ()

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top