Elementy OnCreateContextMenu i ListView
Mam LisView z kilkoma elementami. W tym celu połączyłem OnItemClickListener (jako klasę wewnętrzną), tak jak poniżej:
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();
}
});
Oczywiste jest, że wybranie elementu wyświetla elementy obiektu tego wpisu, w tym przykładzie identyfikator wybranego obiektu elementu (nie identyfikator listy, ale identyfikator obiektu, ustawiony podczas tworzenia elementów ArrayList). To działa dobrze i pozwala mi robić wszystko, co chcę, z wybranymi elementami.
Teraz chciałbym również mieć słuchacza „długie kliknięcie”, który otwiera menu kontekstowe dla wybranego elementu ListView. Jak mogę to zrobić? Byłem w stanie dołączyć nasłuchiwanie onCreateContextMenu do ListView, ale nie widzę, jak mogę uzyskać elementy ArrayList tak jak w onItemClickListener?
Oto co mam:
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
menu.add(0, v.getId(), 0, "Something");
menu.add(0, v.getId(), 0, "Something else");
}
Ponieważ OnCreateConextMenu ma różne parametry niż OnItemClickListener, jak uzyskać dostęp do elementów ArrayList, takich jak w OnItemClickListener?