2016-09-27 1 views
-1

Ich habe eine Liste, wo Benutzer wählen, wie viel für jeden Artikel er will, so muss ich über jede Zeile iterieren, um den Namen (Ovo, Presunto, Queijo, etc), die Menge (die Nummer zwischen den "+" und "-" Tasten und der Preis. Das funktioniert schon gut, aber ich habe folgendes Problem: Wenn du unten in der Listenansicht schaust, kannst du wissen, dass es mehr Elemente gibt, in diesem Bild gibt es 9 Elemente, aber es gibt 15, und wenn der Benutzer scrollt, ich Will kann nicht über die "versteckten" Elemente von ListView iterieren.Wie über die gesamte Android-Listenansicht zu iterieren

My listview

Heute habe ich diesen Code, wo ich Iterierte über die Elemente der Listenansicht versuchen:

for (int i = 0; i < listView.getCount(); i++) { 
     v = listView.getChildAt(i); 
     if(v != null){ 
      value = (TextView) v.findViewById(R.id.edOptionValue); 
      nome = (TextView) v.findViewById(R.id.tvOptionName); 
      tvPrice = (TextView) v.findViewById(R.id.tvPrice); 
      String price = tvPrice.getText().toString(); 

      //more code here 
    } 
} 

listView.getCount(), um die richtige Anzahl von Elementen wird (15 Artikel), aber wenn i == 10 listView.getChildAt (i) erhält null.

Gibt es eine Möglichkeit, über alle Elemente einer Listview zu iterieren, einschließlich der "versteckten" Elemente?

+3

Iterieren Sie den Datensatz, den Sie an den Adapter gesendet haben – Blackbelt

+0

Der Datensatz enthält nicht die Eigenschaften, die ich brauche (Preis, Menge). Ich muss diese Werte von der Listview erhalten. – rochasdv

+0

Warum gibt jemand einen Downvote, bevor er versteht, was ich brauche? Oder zumindest irgendwelche Erklärungen geben – rochasdv

Antwort

1

Sie sollten die Listenansichten nicht iterieren, stattdessen sollten Sie alle diese Daten (Preis/Menge) in einer Liste behalten und darüber iterieren, wenn Sie das wirklich tun müssen. Diese Liste kann verwendet werden, um auch die ListView zu füllen.