2010-06-03 20 views
7

Ich habe auf dieser Website gelesen, dass es erforderlich ist, die SetOnItemSelectedListener und SetOnItemClickListener einer ListView anzupassen, wenn wir den Index des SelectedItem (.getSelectedItemPosition()) wissen möchten. Also das ist, was ich tue, aber es speichert nicht die Position des SekectedItem, stattdessen habe ich immer -1 ...ListView setOnItemClickListener und setOnItemSelectedListener zum Speichern des ausgewählten Elements Index

Was ich tun möchte, ist nur, um dem Benutzer eine Möglichkeit zu geben, Elemente aus einer Liste zu löschen ausgewählt und Artikel und Klicken auf eine Schaltfläche.

den Code Siehe unten:

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

Was ist los ??

Vielen Dank für Ihre Hilfe!

Christophe

Antwort

10

Statt tun listViewPeople.getSelectedItemPosition(); versuchen, den int mit i-Parameter den Index zu erhalten.

+0

großartig! musste nur die remove-Methode auch zu ändern: \t arrayPeople.remove (arrayPeople.get (listViewPeopleId)); – Christophe

Verwandte Themen