Nach Änderung ListView neu aufbauen

  • Antworten:3
  • Bentwortet
  • Forum-Beiträge: 506

08.01.2022, 21:22:58 via Website

Hallo zusammen

Ich habe eine ListView welche ich mit einem Adapter und einem StringArray befülle.
Wenn ich mit add

cname.add(pers.pname)

ein neuer Eintrag hinzufühge, Dann kann ich mit

lisc_name.forceLayout()

die Anzeige neu aufbauen und alles ist korrekt.

Wenn ich aber hingegen mit

cname.removeAt(aktuell)

ein Eintrag lösche, dann kann ich "forceLayout" ausführen und das Element bleibt stehen.

Was kann ich tun, dass nach dem Löschen die ListView wieder das richtige anzeigt?

Gruss Renat

Kommentieren
Beste Antwort
  • Forum-Beiträge: 11.242

09.01.2022, 19:24:05 via Website

Hallo Renato,

es gibt auf dem ListAdapter eine Methode notifyDataSetChanged(), welche die komplette ListView aktualisiert. Dafür brauchst du dein forceLayout nicht zu nutzen, das wäre eher chlechter Stil.

LG

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Kommentieren
  • Forum-Beiträge: 2.347

19.01.2022, 08:59:50 via Website

Du kannst auch statt eines "normalen" RecyclerView.Adapter einen ListAdapter mit DiffUtil verwenden.
Dann die Liste mit submitList() übergeben.
Dann gibt's schöne Animationen bei Veränderung der Liste geschenkt.

https://medium.com/androiddevelopers/adapting-to-listadapter-341da4218f5b

Hilfreich?
Kommentieren