studio programacion menus example ejemplos contextual context android nullpointerexception contextmenu

android - programacion - ¿Cómo se hace clic en ContextMenu en la posición del elemento?



menu contextual android listview (2)

Consulte este tutorial en http://www.stealthcopter.com/blog/2010/04/android-context-menu-example-on-long-press-gridview/

Estoy usando este código para obtener la posición del elemento cliqueado en el menú contextual:

public boolean onContextItemSelected(MenuItem item) { AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); int index = info.position; }

como se sugiere aquí:

Android: cómo encontrar la posición presionada desde el menú contextual

Pero obtengo NullPointerException en la línea:

int index = info.position;

¿por que es esto entonces?

EDITAR

Tengo 2 Vistas registradas para el menú contextual de esta manera:

button1.onClick(view v){ registerForContextMenu(v); openContextMenu(v); } button2.onClick(view v){ registerForContextMenu(v); openContextMenu(v); }

luego, dependiendo de v.getId () llene el menú.


Puede usar directamente:

EDITADO COMIENZA

@Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { AdapterView.AdapterContextMenuInfo info; try { info = (AdapterView.AdapterContextMenuInfo) menuInfo; } catch (ClassCastException e) { // If the menu object can''t be cast, logs an error. Log.e("MENU", "bad menuInfo", e); return; } position = sectionAdapter.getIndexForPosition(info.position); menu.setHeaderTitle(""); String[] menuItems = { "item1","item2","item3","item4" }; for (int i = 0; i < menuItems.length; i++) { menu.add(Menu.NONE, i, i, menuItems[i]); } }

EDITED END

public boolean onContextItemSelected(MenuItem item) { // TODO Auto-generated method stub int position = item.getItemId(); switch (position) { case 0: break; . . . default: break; } }

Espero que te ayude.