Android - Daten in einem AlertDialog aktualisieren?

8

Also, wenn ich einen AlertDialog wie folgt erstelle:

%Vor%

Und dann möchte ich die Elemente in der Liste aktualisieren, d. h. MyStringArray wurde geändert, um mehr oder weniger Elemente zu haben. Ich kann keinen Weg finden, dies zu tun. Bis jetzt habe ich versucht, die ListView aus dem AlertDialog zu bekommen, aber ich kann nicht scheinen .setAdapter zu funktionieren. Ist das der richtige Ansatz, oder gibt es einen besseren Weg dazu?

    
Paul 16.01.2012, 06:54
quelle

2 Antworten

9

Ich habe das selbst nicht ausprobiert, aber von all den anderen Apps, die ich gebaut habe, bin ich mir ziemlich sicher, dass das dein Problem lösen wird.

Verwenden Sie anstelle von setItems die Methode setAdapter() und geben Sie eine ArrayAdapter ein, die mit den Daten aus Array von String initialisiert wurde. Wenn Sie dann wissen, dass sich die Daten geändert haben, können Sie getListView() verwenden, um Ihr View-Objekt abzurufen, und von dort den Aufruf getAdapter() , sodass Sie jetzt direkt mit dem Dataset arbeiten. Sie können es löschen und es neu initialisieren, wenn Sie möchten, oder einfach hinzufügen / entfernen Sie die Elemente, wie Sie möchten. Wenn Sie notifyDataSetChanged() vom Adapter-Objekt aufrufen, sollte eine erneute Zeichenoperation unter Verwendung des neuen Datensatzes ausgelöst werden, den Sie gerade dem Adapter übergeben haben.

Hoffe, dass dir das hilft. Lass es mich wissen, wenn es nicht so ist.

DSC

    
David C. Sainte-Claire 16.01.2012, 07:14
quelle
1

Wenn Sie wie ich sind und Sie Standard-Adapter zum Beispiel für Multichoice-Elemente verwenden möchten, dann gibt es auch einen Weg.

Wie bei jedem anderen Adapter aktualisieren Sie einfach das String-Array-Objekt, holen Sie den Adapter aus der Dialoginstanz, wirf ihn auf den entsprechenden Adapter und invalidiere ihn.

%Vor%

Hier erfahren Sie mehr.

    
Martin Rajniak 02.11.2012 18:04
quelle

Tags und Links