InvalidateOptionsMenu ne s'appelle pas du fragment

J'ai un fragment avec lequel il faut construire sa propre barre d'action:

public class CalendarFragment extends Fragment { public CalendarFragment() { } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); getActivity().supportInvalidateOptionsMenu(); setHasOptionsMenu(true); } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.calendar_menu1, menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { return super.onOptionsItemSelected(item); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { TextView textView = new TextView(getActivity()); textView.setGravity(Gravity.CENTER); textView.setText("Calendar Fragment"); return textView; } 

}

  • Android - visualisation des bases de données SQLite sur un périphérique?
  • Message d'avertissement Google Play et OpenSSL
  • Réutilisant des fragments dans un fragmentpageradapter
  • Comment icmp ping sur Android
  • Emulateur Android SDK avec résolution Full HD
  • Comment convertir BitmapDescriptor en drawable dans Android pour imageview
  • Le problème est qu'il ne crée pas un nouveau menu avec des éléments de calendar_menu1, mais que vous ajoutez simplement les éléments à l'ancien menu, comme si invalidateOptionsMenu ne fonctionnait pas (j'ai essayé getActivity (). InvalidateOptionsMenu () aussi)

  • Afficher un seul enfant de la liste extensible à la fois
  • Comment identifier l'appel entrant et l'appel sortant dans Android
  • Dessiner plusieurs lignes dans edittext, par exemple, bloc-notes
  • Comment créer une boîte de dialogue modale dans Android
  • Ouvrez une boîte de dialogue en cliquant sur un bouton présent dans la notification dans Android
  • Comment puis-je assurer un clavier décimal numérique dans Android?
  • 2 Solutions collect form web for “InvalidateOptionsMenu ne s'appelle pas du fragment”

    Vous devez appeler onCreate ():

     setHasOptionsMenu(true); 

    Il est normal, en regardant le javadoc de MenuInflater , " Les éléments et les sous-menus seront ajoutés à ce menu ":

     public void inflate (int menuRes, Menu menu) Inflate a menu hierarchy from the specified XML resource. Throws InflateException if there is an error. Parameters menuRes Resource ID for an XML layout resource to load (eg, R.menu.main_activity) menu The Menu to inflate into. The items and submenus will be added to this Menu. 

    Avez-vous essayé d'appeler menu.clear() avant pour gonfler votre menu de fragments?

     @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { menu.clear(); inflater.inflate(R.menu.calendar_menu1, menu); } 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.