2010-06-03 12 views
7

Przeczytałem na tej stronie, że konieczne jest dostosowanie setOnItemSelectedListener i setOnItemClickListener ListView, jeśli chcemy poznać Indeks SelectedItem (.getSelectedItemPosition()). Więc to jest to, co robię, ale nie zapisuje pozycji SekectedItem, zamiast tego zawsze mam -1 ...ListView setOnItemClickListener i setOnItemSelectedListener do przechowywania wybranego indeksu pozycji

Co chcę zrobić, to po prostu dać użytkownikowi sposób na usunięcie pozycji z listy przez wybrane i pozycja i kliknięcie przycisku.

Zobacz poniższy kod:

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

Co jest nie tak ??

Dziękuję za pomoc!

Christophe

Odpowiedz

10

Zamiast robić listViewPeople.getSelectedItemPosition(); spróbuj użyć int i parametr, aby uzyskać indeks.

+0

świetnie! musiałem zmienić metodę usuwania również na: \t arrayPeople.remove (tablicaPeople.get (listViewPeopleId)); – Christophe

Powiązane problemy