¿Cómo agregar un menú en un fragmento?

Cuando uso un fragmento, no consigo el menú en la barra de acción. No sé dónde está el problema con el código a pesar de la aplicación del método onCreateOptionsMenu (). Aquí está el código que estoy usando:

public class LesAvis extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { setHasOptionsMenu(true); View rootView = inflater.inflate(R.layout.avis, container,false); ListView listeAvis = (ListView) rootView.findViewById(R.id.listView); return rootView; } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.my_menu, menu); super.onCreateOptionsMenu(menu,inflater); } } 

Sin embargo, cuando uso esta parte de código para implementar el método onCreateOptionsMenu (), obtengo lo que quiero (el menú en mi barra de acciones):

 @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { menu.add("Compte") .setIcon(R.drawable.ic_compte) .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); menu.add("Compte") .setIcon(R.drawable.ic_historique) .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); menu.add("Compte") .setIcon(R.drawable.ic_param) .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); } 

Para agregar un menú para cada fragmento, debe pasar por muchos pasos:

1) En primer lugar, agrega setHasOptionsMenu (true) en el onCreateView del fragmento () como a continuación:

 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { setHasOptionsMenu(true); .... } 

2) Anule el método onCreateOptionsMenu () del fragmento como se indica a continuación:

 @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.menu_above_details_fragment, menu); return; } 

3) Anule el método onOptionsItemSelected () de la actividad de la siguiente manera:

 @Override public boolean onOptionsItemSelected(MenuItem item) { if (mDrawerToggle.onOptionsItemSelected(item)) { return true; } Intent i; switch (item.getItemId()) { case R.id.action_param: i = new Intent(this, Settings.class); startActivity(i); return true; case R.id.action_history: i = new Intent(this, HistoryMenu.class); startActivity(i); return true; } return onOptionsItemSelected(item); } 

4) No anule el onOptionsItemSelected () del fragmento, ni onCreateOptionsMenu de la actividad ().

Creo que necesitas agregar la siguiente línea al crear tu Fragmento: setHasOptionsMenu(true);

Llame a setHasOptionsMenu(true) en el método onCreate() lugar de onCreateView() .

  • Android añadiendo un submenú a un menuItem, donde es addSubMenu ()?
  • Problema con el botón Jellybean Menu Android
  • Elemento de menú de Android con el icono y el texto juntos cuando showAsAction nunca es
  • Cierre el teclado al desplazarse en la lista desplegable de autocompletetextview en Android
  • Botón de menú de nido de abeja objetivo
  • ¿Cómo puedo crear múltiples menús contextuales?
  • Android - ventana de diálogo de texto desde un menú de opciones
  • No hay carpeta de menú en el proyecto de estudio de Android
  • Android: Detectar mediante programación si el dispositivo tiene botón de menú de hardware
  • Inflar ActionBarSherlock Menú definido en XML
  • Menú de la cinta de opciones Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.