9
votes

Pourquoi n'ai-je pas besoin d'utiliser Adapter.NotifyDataSetSetSetSetched ()?

La liste des contacts est vide jusqu'à ce que la méthode readContacts () a été exécutée, en d'autres termes, lorsque contactsview.setAdapter (adaptateur) a été exécuté , la liste contacts est vide, alors pourquoi ce code peut toujours afficher les informations des contacts correctement? XXX

Mais si j'ajoute quelque chose comme ça, je dois appeler quelque chose comme ça, je dois appeler notifydatasetchangeed () : xxx

Ajouter est le bouton. Maintenant que l'Android appellerait la méthode automatiquement, pourquoi, lors de la suppression de l'adaptateur NifyDataSetSetSetched (); L'interface utilisateur n'a pas pu rafraîchir?


0 commentaires

3 Réponses :


1
votes

Cette méthode est appelée interne dans le cadre Android. Vous n'avez pas à l'appeler explicitement.

Source: https://www.udacy.com/course/développer -android-applications - UD853


3 commentaires

Je veux dire lorsque je réglais l'adaptateur, la liste est vide. Et après avoir utilisé readcontacts , la liste est devenue non vide, mais je n'ai pas utilisé notifydataChanged () pour l'actualiser. Alors pourquoi la liste de liste peut toujours afficher des informations?


@HUNGRYMILK Lorsque le contenu de la liste est modifié, Android Framework appelle automatiquement notifyDataSetSetched () . Donc, vous n'avez pas à l'appeler vous-même.


Merci! Mais j'ai une nouvelle question, rafraîchissez-vous dans ce qui précède :)



0
votes

En plus de la réponse de Lily, si vous écrivez votre propre adaptateur, vous devez l'appeler explicitement.


0 commentaires

0
votes

Le point est que vous entrez des données dans une commande, c'est-à-dire lorsque vous avez poussé un élément de la liste, vous ne l'entrez pas au 4ème, 5e index aléatoire afin que vous n'ayez pas à appeler notifydatasetchangeed () comme sa définition elle-même indique: que certaines données ont été modifiées ou que tout point de vue reflétant le jeu de données doit se rafraîchir pour rendre les nouvelles données visibles sur la liste , comme dans ce cas, les données sortent de la portée de la liste visible, c'est-à-dire le nombre d'enfants affichés dans la liste afin que ce soit (la liste de réception) appelle toujours à la suivante Vues après cette dernière valeur de l'index indiquée (article) de la liste de liste.!

J'espère que je t'ai fait un peu clair pour toi ...!

+++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++ Réponse Après avoir modifié la question, après avoir cherché et avoir mes propres pensées et compréhensions à cette égalité:

Dans le premier cas, aucun changement n'est nécessaire pour être fait pour la vue .. droite.? Si ce point est clair pour vous, alors arrivez le second. En premier lieu, vous avez récupéré les données de la DB, puis ajoutez un élément de la liste, puis remplissez-le après avoir défini l'adaptateur. !! L'adaptateur n'a pas été défini avant que toute la méthode exécute et termine la liste ..! Ok.

Mais dans le deuxième scénario Vous changez de vue (à peu près tout est Vue dans Android) afin que vous manipulez une vue en ajoutant un autre élément sur la vue déjà peuplée (qui a déjà un ensemble Adaptateur-destiné), donc cette fois-ci, vous devez dire que vous devez dire que hey, j'ai ajouté un élément dans vous maintenant vous rafraîchissez-vous, puis mettez à jour la liste (c.-à-d. Affichage).


2 commentaires

Merci! Mais j'ai une nouvelle question, rafraîchissez-vous dans ce qui précède :)


@Hungrymilk Salut Il y a un coup d'œil sur l'explication mise à jour et si cela aide à l'accepter comme une réponse :)