2010-11-30 7 views
3

So habe ich ein Problem mit den verschiedenen Stücken von diesem meine ListView. Ich lege sie in eine ArrayList und benutze ein benutzerdefiniertes ArrayAdapter, um die ListView zu verbinden, was ich vorher gemacht habe, also glaube ich nicht, dass da ein Problem ist. Anfangs scheint die Liste die Teile in der richtigen Reihenfolge zu haben, aber dann werde ich die Liste runterscrollen und der Inhalt wird dann in falscher Reihenfolge geladen. Ich blättere dann zurück und alles ist durcheinander. Ist schon mal jemand darauf gestoßen?ListView Inhalte auf Scroll scrambled

Dank -Jake

+1

zwingende Sie die GetView Methode des Adapters? Wenn ja, zeig was du tust. –

+0

Jake, ich hatte das gleiche Problem und ich fand die Lösung hier: http://stackoverflow.com/questions/2955218/listview-in-arrayadapter-order-gets-mixed-up-when-scrolling?rq=1 – Reiksiel

Antwort

5

Ja ist Ihr Problem mit der Tatsache, dass Liste die Ansichten für jede Zeile wieder verwendet. Sagen Sie also, Ihre Liste kann 5 Elemente sehen, aber Ihr ListAdapter enthält 15 Dinge. Android erstellt 5 + 1 Instanzen Ihrer Zeilenansicht anstelle von 15. Eine für jede Zeile in der Liste + 1 für, wenn die Hälfte der oberen und unteren Zeile sichtbar ist. Wenn eine Zeile aus dem sichtbaren Bereich herausbewegt wird, wird diese Ansichtsinstanz für eine andere Zeile wiederverwendet, anstatt eine neue Zeile zu erstellen. Wenn Sie nicht jedes Mal alle Benutzeroberflächenkomponenten ordnungsgemäß zurücksetzen, werden Artefakte aus anderen Zeilen angezeigt. Sie müssen sicherstellen, dass jedes Mal, wenn Sie Ihre Daten von den Objekten in Ihrer Array-Liste an die Ansicht binden, jedes Feld jedes Mal festgelegt wird.

Für eine bessere Beschreibung dieser sehen

http://www.youtube.com/watch?v=N6YdwzAvwOA&feature=related

+0

Ehrfürchtig . Ich erkannte, dass ich recycelte, aber ich stellte die Felder nicht zurück, so dass sie nur die gleichen Dinge zeigten wie zuvor. Vielen Dank. – jakehschwartz

Verwandte Themen