Nach Änderung ListView neu aufbauen

  • Antworten:3
  • Bentwortet
Robbiani Renato
  • Forum-Beiträge: 614

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
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

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
Robbiani Renato
  • Forum-Beiträge: 614

13.01.2022, 16:15:26 via Website

Danke Pascal

Genau so funktioniert es. Besten Dank.

Gruss Renato

Hilfreich?
Kommentieren
Rafael K.
  • Forum-Beiträge: 2.359

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