J'ai une vue qui prolonge l'activité. Un ListView affichera un certain nombre de listitems. Lorsque l'utilisateur clique longuement je voudrais les présenter avec un menu contextuel leur permettant de sélectionner éditer, supprimer etc ... puis d'identifier le listitem qui a été sélectionné comme élément sur lequel effectuer l'action.id identifiant de listitem pour contextmenu
En onCreate je:
listView.setAdapter(adapter);
listView.setOnItemClickListener(onListClick);
listView.setOnItemLongClickListener(onListLongClick);
registerForContextMenu(listView);
J'ai une méthode onCreateContextMenu
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle("Context Menu");
menu.add(0, v.getId(), 0, "Edit");
menu.add(0, v.getId(), 0, "Delete");
}
et aussi onContextItemSelected
@Override
public boolean onContextItemSelected(MenuItem item) {
if (item.getTitle() == "Edit") {
// edit action
} else if (item.getTitle() == "Delete") {
// delete action
} else {
return false;
}
return true;
}
Je ne sais pas où aller d'ici pour obtenir le ligne correcte/listitem.
Grande qui fonctionne, mais il semble être compensé par un si au lieu de info.position je suis d'avoir à passer (info.position + 1). Est-ce que ce comportement est attendu? – JDM