Bei Android der Adapter fungiert als Brücke zwischen der Ansicht und dem Datenmodell. Sie könnten das n anzeigen TextViews entweder in einer ListView oder eine GridView , und wenn der Benutzer eine Notiz hinzufügt oder löscht, wird zuerst die lokale oder Serverdatenbank aktualisiert. Nach Abschluss des Webservice-Aufrufs und/oder der lokalen Datenbankaktualisierung werden die neuen Daten dem zugrunde liegenden Adapter hinzugefügt . Die View wird dann durch Aufruf von adapter.notifyDataSetChanged() aktualisiert . Dies wäre der Weg, es zu tun.
Ansätze:
- Bei Aktualisierung des lokalen
SQLiteDatenbank, könnten Sie die Verwendung einesCursorAdpaterin Betracht ziehen um die Daten für dieViewzu halten , da es die Einträge in der lokalen Datenbank direkt derViewzuordnet . - Bei Verwendung eines
ContentProvider, es ist sogar möglich, einenCursorAdapterzu kombinieren mit einemLoaderManagerund einCursorLoader:Diese werden in dieActivitygesteckt /FragmentLebenszyklus und überwachen den zugrunde liegendenContentProviderfür Änderungen, die automatisch in derViewveröffentlicht werden in einem separaten Thread. - Es ist auch möglich, einen
Filterzu verwenden in Verbindung mit demAdapterum einen dynamischen Mechanismus zu definieren, der die Dateneinträge on-the-fly sortiert. Die Filterung erfolgt durch denFilterin einem separaten Thread, gemäß einer vom Benutzer eingegebenen Abfrage, möglicherweise in einerAutoCompleteTextView.
Referenzen:
- Siehe Abrufen einer Kontaktliste Lernprogramm. Das Beispiel hier ruft eine Reihe von Kontakten aus dem
ContentProviderder Kontakte ab basierend auf einer dynamischen, alphabetischen Suche durch den Benutzer. Es verwendetCursorAdapter,CursorLoaderundLoaderManagerum die Daten zu überwachen und zu aktualisieren, und es zeigt die Suchergebnisse in einerListViewan . - Siehe auch die Android-Echtzeitsuche (Sofortsuche) mit Filterklasse Beispiel, das zeigt, wie ein
Filterverwendet werden soll. - Android AutoCompleteTextView mit benutzerdefinierter Adapterfilterung .
- Android AutocompleteTextView mit ArrayAdapter und Filter .