SQLite
 sql >> Base de données >  >> RDS >> SQLite

Meilleure pratique pour un couplage lâche entre les données et l'interface utilisateur dans Android - Adapter, Filter, CursorLoader et ContentProvider

Sous Android, l'Adapter agit comme un pont entre la vue et le modèle de données. Vous pouvez afficher le n TextViews soit dans un ListView ou un GridView , et lorsque l'utilisateur ajoute ou supprime une note, la base de données locale ou du serveur est d'abord mise à jour. À la fin de l'appel du service Web et/ou de la mise à jour de la base de données locale, les nouvelles données sont ajoutées à l'Adapter sous-jacent. . La View est ensuite rafraîchi en appelant adapter.notifyDataSetChanged() . Ce serait la façon de le faire.

Approches :

  • Si vous mettez à jour le SQLite local base de données, vous pouvez envisager d'utiliser un CursorAdpater pour conserver les données de la View , car il mappe directement les entrées de la base de données locale à la View .
  • Si vous utilisez un ContentProvider , il est même possible de combiner un CursorAdpater avec un LoaderManager et un CursorLoader  :ceux-ci se connectent à l'Activity / Fragment cycle de vie et surveiller le ContentProvider sous-jacent pour les modifications publiées automatiquement dans la View sur un fil séparé.
  • Il est également possible d'utiliser un Filter en conjonction avec l'Adapter pour définir un mécanisme dynamique qui trie les entrées de données à la volée. Le filtrage est effectué par le Filter sur un thread séparé, selon une requête saisie par l'utilisateur, éventuellement dans une AutoCompleteTextView .

Références :

  • Voir Récupérer une liste de contacts Didacticiel. L'exemple ici récupère un ensemble de contacts à partir des contacts ContentProvider sur la base d'une recherche dynamique et alphabétique de l'utilisateur. Il utilise CursorAdpater , CursorLoader etLoaderManager pour surveiller et mettre à jour les données, et il affiche les résultats de la recherche dans une ListView .
  • Voir aussi la Recherche Android en temps réel (instantanée) avec classe de filtre exemple, qui montre comment un Filter doit être utilisé.
  • Android AutoCompleteTextView avec filtrage d'adaptateur personnalisé .
  • Android AutocompleteTextView utilisant ArrayAdapter et Filter .