2010-09-22 1 views
13

Ich versuche ein Kontextmenü zu erstellen, das die verfügbaren Optionen abhängig davon ändert, auf welche Zeile geklickt wurde.Zeilenposition in onCreateContextMenu abrufen

Aber ich kann nicht herausfinden, wie die Zeilenposition in der ListView für Zeile, die geklickt wurde, bis nach dem Erstellen des Menüs erhalten.

Antwort

48

Es ist überhaupt nicht klar, aber hier ist der Code:

public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) 
    {  
     AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo; 
     int position = info.position; 
+0

Vielen Dank. Das löst es komplett. –

+6

Ich benutze die gleiche Sache, aber ich bekomme menuInfo als null .. keine Idee .. –

+0

@TusharAgarwal Ich bin mit ähnlichen Problem konfrontiert, haben Sie eine Alternative gefunden –

0

Die obige Lösung nicht für mich arbeiten. Hier ist, was ich verwendet habe:

@Override 
    public void onCreateContextMenu(ContextMenu menu, View v, 
            ContextMenu.ContextMenuInfo menuInfo) { 
     menu.add(0, v.getId(), 0, context.getString(R.string.tabTitleEnrolment)); 
     menu.add(0, v.getId(), 0, context.getString(R.string.tabTitleAfterCare)); 
     menu.add(0, v.getId(), 0, context.getString(R.string.contextMenuDelete)); 

     pos = getPosition(); 
    }