OnCreateContextMenu und ListView-Elemente
Ich habe eine LisView mit mehreren Artikeln. Daran habe ich einen OnItemClickListener (als innere Klasse) wie folgt angeschlossen:
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(ShoppingListApp02Activity.this, "List item selected:" +
items.get(position).getId(), Toast.LENGTH_LONG).show();
}
});
Es ist offensichtlich, dass beim Auswählen eines Eintrags Elemente des Objekts dieses Eintrags angezeigt werden, in diesem Beispiel die ID des ausgewählten Elementobjekts (nicht die Listen-ID, sondern die Objekt-ID, die beim Erstellen der ArrayList-Elemente festgelegt wurde). Dies funktioniert gut und ermöglicht es mir, mit den ausgewählten Elementen alles zu tun, was ich will.
Jetzt hätte ich auch gerne einen "Lang-Klick" -Listener, der ein Kontextmenü für das ausgewählte ListView-Objekt öffnet. Wie mache ich das? Ich konnte einen onCreateContextMenu-Listener an die ListView anhängen, sehe aber nicht, wie ich die Elemente der ArrayList wie beim onItemClickListener abrufen kann.
Folgendes habe ich:
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
menu.add(0, v.getId(), 0, "Something");
menu.add(0, v.getId(), 0, "Something else");
}
Da OnCreateConextMenu andere Parameter als OnItemClickListener verwendet, wie kann ich auf die ArrayList-Elemente wie im OnItemClickListener zugreifen?