2009-10-08 14 views
14

Ich wollte wissen, wie ich eine ListActivity aktualisieren, wenn ich Daten ändern/hinzufügen.Android ListActivity aktualisieren, wenn sich Listendaten ändern?

Ich dachte zuerst, dass ListAdapter würde wissen, wenn die Liste ändert sich, aber wenn ich Elemente zur Liste hinzugefügt habe, gibt es kein Update auf der ListActivity, nur wenn ich die ListActivity schließe und wieder öffnen, sehe ich die Änderungen auftreten.

Also suchte ich nach einer Methode wie: update(), refesh() oder so ähnlich, aber es gibt keine. Es scheint, ich habe das Konzept nicht bekommen, kann mir bitte jemand helfen?

Antwort

22

Wenn Sie eine ArrayAdapter verwenden, bearbeiten Sie den Inhalt der Liste über den Adapter - berühren Sie nicht die zugrunde liegende Liste. Es gibt add(), insert() und remove() Methoden auf ArrayAdapter.

Wenn Sie eine CursorAdapter verwenden, führen Sie eine requery() über die Cursor.

+0

ok danke tun nicht ich verstehe, wie es funktioniert –

+0

ich ArrayAdapter verwenden und ich Datensatz aktualisieren. Wie kann ich ListView aktualisieren? –

+3

Dies wird natürlich nicht mehr empfohlen, da 'requery()' auf dem UI-Thread ausgeführt wird. Wenn Sie über diesen Beitrag stolpern, sollten Sie stattdessen einen 'Loader' verwenden. –

7

Versuchen ArrayAdapter: notifyDataSetChanged
Google docs link

+2

Nur ein Hinweis, der nicht funktioniert, wenn keine Beobachter an den Adapter angeschlossen sind. – Waltsu

0

Vielleicht sollten Sie diese setListAdapter(listAdapter);

Verwandte Themen