Connecter l'interface utilisateur aux données¶
Maintenant que vous avez créé la fonction pour remplir la base de données avec l'ensemble initial de mots, l'étape suivante consiste à ajouter le code pour afficher ces mots dans le RecyclerView.
Pour afficher le contenu actuel de la base de données, ajoutez un observateur qui observe les LiveData dans le ViewModel.
Chaque fois que les données changent, la fonction de rappel onChanged() est invoquée. Elle appelle la fonction setWords() de l'adaptateur pour mettre à jour les données mises en cache de l'adaptateur et rafraîchir la liste affichée.
-
Dans
MainActivity, déclarez une propriété pour leViewModel, avec le déléguéby viewModels():MainActivity.kt Le délégué
by viewModels()utiliseViewModelProviderpour associer votreViewModelà votre activité. LeViewModeln'est créé qu'au premier accès à la propriétéwordViewModel: il n'y a rien d'autre à ajouter dansonCreate().Lorsque votre activité est lancée pour la première fois,
ViewModelProvidercrée leViewModel. Lorsque l'activité est détruite, par exemple lors d'un changement de configuration, leViewModelpersiste. Lorsque l'activité est recréée,ViewModelProviderrenvoie leViewModelexistant. Pour plus d'informations, consultezViewModel. -
Dans
onCreate(), sous le bloc de codeRecyclerView, ajoutez un observateur pour leLiveDataexposé parallWords. La fonctiononChanged()(ici le lambda) est déclenchée lorsque les données observées changent et que l'activité est au premier plan : -
Exécutez l'application. L'ensemble initial de mots "Hello" et "World" apparaît dans le
RecyclerView.
