SQLite
 sql >> Datenbank >  >> RDS >> SQLite

Best Practice für lose Kopplung zwischen Daten und UI in Android – Adapter, Filter, CursorLoader und ContentProvider

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 SQLite Datenbank, könnten Sie die Verwendung eines CursorAdpater in Betracht ziehen um die Daten für die View zu halten , da es die Einträge in der lokalen Datenbank direkt der View zuordnet .
  • Bei Verwendung eines ContentProvider , es ist sogar möglich, einen CursorAdapter zu kombinieren mit einemLoaderManager und einCursorLoader :Diese werden in die Activity gesteckt / Fragment Lebenszyklus und überwachen den zugrunde liegenden ContentProvider für Änderungen, die automatisch in der View veröffentlicht werden in einem separaten Thread.
  • Es ist auch möglich, einen Filter zu verwenden in Verbindung mit dem Adapter um einen dynamischen Mechanismus zu definieren, der die Dateneinträge on-the-fly sortiert. Die Filterung erfolgt durch denFilter in 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 ContentProvider der Kontakte ab basierend auf einer dynamischen, alphabetischen Suche durch den Benutzer. Es verwendet CursorAdapter , CursorLoader undLoaderManager um die Daten zu überwachen und zu aktualisieren, und es zeigt die Suchergebnisse in einer ListView an .
  • Siehe auch die Android-Echtzeitsuche (Sofortsuche) mit Filterklasse Beispiel, das zeigt, wie ein Filter verwendet werden soll.
  • Android AutoCompleteTextView mit benutzerdefinierter Adapterfilterung .
  • Android AutocompleteTextView mit ArrayAdapter und Filter .