ListView neue Elemente, wenn man das Ende der List erreicht

K

KaNuNSuZ_oFLu

Neues Mitglied
0
Hallo,

ich habe eine Frage. Und zwar habe ich eine Activity in der sich eine ListView befindet.. Ich habe in der List mehrere Elemente. Möchte sie aber nicht alle auf einmal anzeigen, sondern erst die obersten 20 oder so.. Und wenn man das Ende der Liste erreicht, sollen weitere 20 Listenelemente geladen werden.. Habe da zwar einige Tutorials im Internet gefunden. Verstehe aber nicht wie ich sie anwenden soll.. Da die meisten auf eine ListActivity basieren..
 
ob listactivty oder nicht spielt aber dafür mal überhaupt keine rolle
 
nach langer Arbeit habe ich es nun soweit hinbekommen, dass ich am Ende der Liste neue Listenelemente lade.. Habe aber das Problem, dass meine View dann wieder ganz hoch scrollt.. also ich sehe die Liste wieder von vorne und nicht von der Stelle, wo ich stehengeblieben bin.. Sprich: ich lade anfangs 20 listenelemente.. soweit alles gut.. scrolle runter und wenn ich dann am ende der liste bin erweitere ich meine Liste um weitere 20 Elemente.. Das mache ich mit einer for schleife.. habe eine NodeList vom XMLParser.. die For-Schleife holt sich dann 20-40-60 Knoten von der Liste und fügt sie einer HashMap hinzu.. die Hashmap wird in einer ArrayList gespeichert.. Mit der ArrayList wird dann ganz zum schluss, wenn ich 20 bzw 40 bzw 60 elemente geladen habe, ein neuer Adapter erstellt (LazyAdapter)..

Code:
adapter=new LazyAdapter(this, newsList);        
list.setAdapter(adapter);

wie gesagt funktioniert soweit auch nur es scrollt ganz hoch.. sprich um das 21. Element der Liste zu sehen muss ich WIEDER runter scrollen.. sobald das 20. Element sichtbar ist ladet er die neuen einwandfrei. Es soll ja dann einfach die neuen Elemente hinzufügen, aber genau das passiert dann nicht.. Es ist nicht so, dass das bild stehen bleibt und die Liste um neue elemente ergänzt wird.. sondern es ist so, dass die Liste NEU ERSTELLT wird diesmal halt mit 40/60/80 Elementen.. und die Liste wird von vorne angezeigt.. kann ich das irgendwie verhindern? Also es soll so sein, dass ich die Liste ergänze und nicht komplett neu erstelle..
 
Du könntest dem ListView sagen, wo er hinscrollen soll.
 
  • Danke
Reaktionen: KaNuNSuZ_oFLu
wenn du den adapter neu der listview setzt, wird auch die position zurückverschoben.

korrekt ist folgender ablauf:

*) Listview adapter setzen
*) Daten laden
*) Daten dem adapter geben
*) notifydatasetchanged aufrufen

alles funktioniert :D
 
  • Danke
Reaktionen: KaNuNSuZ_oFLu
besten Dank an euch beide :) Hat so gefunzt wie swordi es gesagt hat
 

Ähnliche Themen

A
Antworten
10
Aufrufe
1.016
swa00
swa00
L
Antworten
4
Aufrufe
1.328
lonnie9020
L
M
Antworten
3
Aufrufe
139
moin
M
Zurück
Oben Unten