2010-06-03 14 views
7

Ho letto su questo sito che è necessario personalizzare setOnItemSelectedListener e setOnItemClickListener di un oggetto ListView se si desidera conoscere l'indice di SelectedItem (.getSelectedItemPosition()). Questo è quello che faccio ma non memorizza la posizione di SekectedItem, invece ho sempre -1 ...ListView setOnItemClickListener e setOnItemSelectedListener per memorizzare l'indice elemento selezionato

Quello che voglio fare è solo dare all'utente un modo per eliminare elementi da una lista di selezionato e Item e facendo clic su un pulsante.

vedere il codice qui sotto:

listViewPeople.setOnItemClickListener(new ListView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> a, View v, int i, long l) { 
      try { 
       // Remembers the selected Index 
       listViewPeopleId = listViewPeople.getSelectedItemPosition(); 
      } 
      catch(Exception e) { 
       System.out.println("Nay, cannot get the selected index"); 
      } 
     } 
    }); 

    listViewPeople.setOnItemSelectedListener(new ListView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> a, View v, int i, long l) { 
      try { 
       // Remembers the selected Index 
       listViewPeopleId = listViewPeople.getSelectedItemPosition(); 
       System.out.println("Yay, set the selected index " + listViewPeopleId); 
      } 
      catch(Exception e) { 
       System.out.println("Nay, cannot get the selected index " + listViewPeopleId); 
      } 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> arg0) { 
      try { 
       // Remembers nothing selected 
       listViewPeopleId = -1; 
       System.out.println("Yay, set that nothing is selected " + listViewPeopleId); 
      } 
      catch(Exception e) { 
       System.out.println("Nay, cannot set that nothing is selected " + listViewPeopleId); 
      } 
     } 
    }); 

Cosa c'è di sbagliato ??

Grazie per il vostro aiuto!

Christophe

risposta

10

Invece di fare listViewPeople.getSelectedItemPosition(); provare utilizzando l'int i parametro per ottenere l'indice.

+0

fantastico! Dovevo solo cambiare il metodo di rimozione per: \t arrayPeople.remove (arrayPeople.get (listViewPeopleId)); – Christophe

Problemi correlati