2013-04-27 5 views
7

Voglio ottenere un elemento selezionato da un listview.Ottieni un elemento selezionato in listview quando generi menu contestuale

Quando mantenere un longclick un elemento listview ottengo il menu contestuale (tutto funziona), ma voglio sapere come rilevare qual è la posizione che per il fatto longclick

1º dichiarare le voci di un menu contestuale in

/res/menu/NAMEOFXMLUWANT.XML

come questo

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 

<item android:id="@+id/Abrir" 
     android:title="@string/Abrir" /> 
<item android:id="@+id/Editar" 
     android:title="@string/Edit" /> 
    <item android:id="@+id/Borrar" 
     android:title="@string/delete" /> 
<item android:id="@+id/Alarma" 
     android:title="@string/Alarma" /> 
</menu> 

2º-AFTER nella classe di u vuole fare il contesto m enu in LISTA

lista me = ListView

lista = (ListView) findViewById(R.id.Lista); 
     final ArrayAdapter<String> adaptador = new ArrayAdapter<String>(
       this, android.R.layout.simple_list_item_1, ficheros); 
     lista.setLongClickable(true); 

     lista.setAdapter(adaptador); 

     lista.setOnCreateContextMenuListener(new OnCreateContextMenuListener() { 

      @Override 
      public void onCreateContextMenu(ContextMenu menu, View v, 
        ContextMenuInfo menuInfo) { //here u set u rute 
       MenuInflater inflater = getMenuInflater(); 
       inflater.inflate(R.menu.activity_main, menu); 

      } 
     }); 

3º E finalmente, u impostare u onclick a voci

@Override 
public boolean onContextItemSelected(MenuItem item) { 
    AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo) item 
      .getMenuInfo(); 
    switch (item.getItemId()) { 
    case R.id.Editar: 
    System.out.println("Editar"); 
    return true; 
    case R.id.Borrar: 
     System.out.println("borrar"); 
    return true; 
    case R.id.Abrir: 
     System.out.println("Abrir"); 
    return true; 

    case R.id.Alarma: 
     System.out.println("Alarma"); 
    return true; 

    default: 
    return super.onContextItemSelected(item); 
    } 
} 

per me tutto questo funziona :), ma voglio ottenere selezionare la voce con la lunga click, thx per la lettura ^^

+2

'menuInfo.posit – Luksprog

+0

U SAVE ME LIFE <3 – CristianCV

risposta

5

menuInfo.position risolto il mio problema, per gentile concessione @Luksprog