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.