contextual context android android-actionbar popupmenu

contextual - context menu android listview



Mostrar menĂº emergente en el elemento ''ActionBar` clic (2)

Así que finalmente encontré la solución. Cuando desee anclar popupmenu a ActionItem en ActionBar, necesita encontrar la vista que represente ActionItem. Vista de búsqueda simple con findViewById () donde id es lo mismo que id de su elemento de menú en xml.

MOSTRANDO 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 del menú no está visible (está en desbordamiento), no funciona. findViewById devuelve nulo, por lo que debe verificar esta situación y anclar a otra vista.

Tengo una ActionBar con un elemento de acción. 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; }


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 origen completo aquí ..

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