3

Ich habe eine Rasteransicht mit Bildern aus einer Liste aufgefüllt. Wenn ich ein Bild aus der Liste entferne, möchte ich, dass die Rasteransicht aktualisiert wird. Kann mir jemand sagen, wie das geht?Rasteransicht der Bilder wird nicht aktualisiert

Ich habe versucht, die Gridview zu invalidieren(), den Imageadapter zu benachrichtigen, dass sich der Datensatz geändert hat (adapter.notifyDataSetChanged();). aber das gibt nicht die gewünschten Ergebnisse.

nachdem ich dies getan habe, bekomme ich eine leere an der Stelle, wo das Bild, das entfernt wird, früher war.

Antwort

0

Verwenden Sie einen ListAdapter, um Ihre Ansicht zu füllen? Vielleicht sollten Sie einen neuen Adapter neu erstellen, wenn sich Ihre Liste ändert.

+0

Ich benutze einen benutzerdefinierten Adapter, der Basisadapter erweitert – chethan

+0

ja, neu erstellen mit einem neuen Adapter ist die einzige Möglichkeit, die ich als eine funktionierende Lösung gefunden. Obwohl ich gerne wissen würde, ob es anders geht. – chethan

+0

das ist fraglich; Erstelle nicht jedes Mal einen neuen Adapter! benutze invalidateViews() wie Denis sagte .. – RumburaK

9

Versuchen Sie, gridView.invalidateViews() statt nur .invalidate() zu verwenden. Es zeichnet alle Ansichten (ImageViews in Ihrem Fall) innerhalb von GridView neu.

+0

Ich muss ein Gitter aus der Gridview neu zeichnen, wie man das versucht, getChildAt, kein Glück – Mikey

+0

Sie meinen, dass Sie eine Ansicht (nicht ein Gitter) von Ihrem Gridview neu zeichnen müssen, richtig? –

+0

gut ein Gitter selbst, irgendwie habe ich es getan. Thanks – Mikey