Mostrar menú emergente en el elemento `ActionBar` haga clic en

Tengo una ActionBar acción con un elemento de acción en él. Después de hacer clic en el elemento de acción, quiero mostrar un menú emergente. Implementé este método, pero quiero anclarlo al elemento de acción o al ActionBar , no a ninguna vista del diseño. ¿Cómo obtener algún tipo de vista para anclarlo desde MenuItem ?

 public boolean onOptionsItemSelected(MenuItem item) { PopupMenu popupMenu = new PopupMenu(this, ??????); // What view goes here? popupMenu.inflate(R.menu.counters_overflow); popupMenu.show(); // ... return true; } 

Así que finalmente encontré solución. Cuando se desea anclar popupmenu a ActionItem en ActionBar es necesario encontrar la vista que hace ActionItem. Vista de búsqueda simple con findViewById () donde id es igual que id de su elemento de menú en xml.

VISUALIZACIÓN DE POPUP:

 public boolean onOptionsItemSelected(MenuItem item) { // ... View menuItemView = findViewById(R.id.menu_overflow); // SAME ID AS MENU ID PopupMenu popupMenu = new PopupMenu(this, menuItemView); popupMenu.inflate(R.menu.counters_overflow); // ... popupMenu.show(); // ... return true; } 

MENÚ:

 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" > .... <item android:id="@+id/menu_overflow" android:icon="@drawable/ic_overflow" android:showAsAction="ifRoom" android:title="@string/menu_overflow"/> .... </menu> 

Si el elemento de menú no está visible (está en desbordamiento) no funciona. FindViewById devuelve null por lo que tiene que comprobar esta situación y anclar a otra vista.

 public boolean onOptionsItemSelected(MenuItem item) { final View addView = getLayoutInflater().inflate(R.layout.add, null); new AlertDialog.Builder(this).setTitle("Add a Word").setView(addView) .setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { addWord((TextView) addView.findViewById(R.id.title)); } }).setNegativeButton("Cancel", null).show(); return (super.onOptionsItemSelected(item)); } 

Obtener el formulario de fuente completa aquí ..

http://vimaltuts.com/android-tutorial-for-beginners/android-action-bar-tab-menu-example

  • La mejor manera de crear menú desplegable en android 2.x como en ICS
  • Yo uso ShareActionProvider en PopupMenu, pero mostrar dos PopupMenu?
  • ¿Cómo puedo editar las dimensiones de un elemento de menú PopUp en Android?
  • AppCompat PopUp menu RuntimeException
  • Cómo configurar el fondo de Android PopupMenu a Blanco
  • PopupMenu con iconos
  • Android PopupWindow se oculta detrás de los botones de navegación en Nexus 5
  • ¿Cómo puedo reemplazar mi código popupmenu con la lista popupwindow?
  • Manejo de elementos del menú emergente
  • Creación de un menú de opciones emergentes en una barra de acción contextual
  • Android: Uso de PopupMenu en el nivel 9 de API
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.