2010-06-03 33 views
7

Bu sitede okudum, SelectedItem (.getSelectedItemPosition()) Dizinini bilmek istiyorsak, setOnItemSelectedListener ve setOnItemClickListener bir ListView ayarlamak için gerekli olduğunu okudum. Yani bu benim yaptığım şeydir, ancak SekectedItem konumunu saklamıyor, bunun yerine her zaman -1 ...ListView setOnItemClickListener ve setOnItemSelectedListener Seçilen Öğe Dizinini saklamak için set

Yapmak istediğim şey, kullanıcıya listeden bir öğeyi silmenin bir yoludur. seçildi ve Öğe ve Tıklama bir düğme.

aşağıdaki kodu bakınız:

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

Sorun ne ??

Yardımlarınız için teşekkür ederiz!

Christophe

cevap

10

yerine listViewPeople.getSelectedItemPosition(); i endeksini hesaplamak için Parametre int kullanmayı deneyin yapmanın.

+0

harika! sadece kaldırma yöntemini değiştirmek zorunda kaldı: \t arrayPeople.remove (arrayPeople.get (listViewPeopleId)); – Christophe

İlgili konular