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?

questionAnswers(6)

yourAnswerToTheQuestion