OnCreateContextMenu y ListView items

Tengo un LisView con varios artículos. A esto he conectado un OnItemClickListener (como una clase interna), como esto:

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();
    }
});

Como es obvio, la selección de una entrada muestra elementos del objeto de esa entrada, en este ejemplo, el ID del objeto del elemento seleccionado (no el ID de la lista, sino el ID de los objetos, establecido al crear los elementos ArrayList). Esto funciona bien y me permite hacer lo que quiera con los elementos seleccionados.

Ahora me gustaría tener también una escucha de "clic largo", que abre un menú contextual para el elemento ListView seleccionado. ¿Cómo puedo hacer eso? He podido adjuntar un oyente onCreateContextMenu a ListView, pero no veo cómo puedo obtener los elementos de ArrayList como con onItemClickListener.

Esto es lo que tengo:

public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {  
    menu.add(0, v.getId(), 0, "Something");
    menu.add(0, v.getId(), 0, "Something else");  
}

Dado que OnCreateConextMenu toma parámetros diferentes a OnItemClickListener, ¿cómo accedo a los elementos de ArrayList como en OnItemClickListener?

Respuestas a la pregunta(6)

Su respuesta a la pregunta