NotifyDataSetChanged() ne fonctionne pas
Fermé
Flo
-
11 mai 2020 à 13:59
BunoCS Messages postés 15495 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 octobre 2024 - 21 mai 2020 à 09:24
BunoCS Messages postés 15495 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 octobre 2024 - 21 mai 2020 à 09:24
3 réponses
BunoCS
Messages postés
15495
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
23 octobre 2024
3 909
11 mai 2020 à 21:40
11 mai 2020 à 21:40
Hello,
Erreur classique : tu as 2 listes d'objets (qui porte en plus le même nom), une dans l'Activity, une dans l'Adapter.
Dans ta méthode
Pour résoudre ton souci, il te faut utiliser une seule liste.
Erreur classique : tu as 2 listes d'objets (qui porte en plus le même nom), une dans l'Activity, une dans l'Adapter.
Dans ta méthode
onClick(), tu modifies la liste de l'Activity. Or, lorsque tu appelles le
notifyDataSetChanged(), tu ré-affiches la liste de l'Adapter, qui n'a pas changé.
Pour résoudre ton souci, il te faut utiliser une seule liste.
Mon code fonctionne bien, je peux changer les données des cartes qui ne sont pas "chargés". Si par exemple je fais ça :
et ensuite je swipe les premières cartes, alors le profil à la 4ème position à bien été modifié.
Mais pour la première carte qui est déjà affichée à mon écran, impossible de modifier les données instantanément.
Quelqu'un aurait une idée ?
profilListe.set(3, profilActualise); cartesImagesAdapter.notifyDataSetChanged()
et ensuite je swipe les premières cartes, alors le profil à la 4ème position à bien été modifié.
Mais pour la première carte qui est déjà affichée à mon écran, impossible de modifier les données instantanément.
Quelqu'un aurait une idée ?
BunoCS
Messages postés
15495
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
23 octobre 2024
3 909
19 mai 2020 à 08:56
19 mai 2020 à 08:56
On est bien d'accord que ton Adapter utilise les données de profilListe que tu mets dans ton bout de code ?
Sinon, une autre "solution" serait de vider l'adapter et de le re-remplir
Sinon, une autre "solution" serait de vider l'adapter et de le re-remplir
Quand j'utilise une listView à la place de SwipeStack, toutes les solutions que j'ai essayé précédemment pour changer les données du profil fonctionnent. La fonction
J'ai aussi essayé de créer un nouvel adapter dans la méthode
Aucun succès. Le profil qui est en cours d'affichage ne se modifie pas. Alors que dans une listView ça fonctionne...
Il doit sûrement avoir une fonction dans SwipeStrack qui permet de rafraîchir la carte mais je ne trouve pas...
notifyDataSetChanged()fonctionne comme il le faut.
J'ai aussi essayé de créer un nouvel adapter dans la méthode
onClick():
cartesImagesAdapter2 = new CartesImagesAdapter(nouveauProfilListe, MainActivity.this); mSwipeStack.setAdapter(cartesImagesAdapter2);
Aucun succès. Le profil qui est en cours d'affichage ne se modifie pas. Alors que dans une listView ça fonctionne...
Il doit sûrement avoir une fonction dans SwipeStrack qui permet de rafraîchir la carte mais je ne trouve pas...
BunoCS
Messages postés
15495
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
23 octobre 2024
3 909
21 mai 2020 à 09:24
21 mai 2020 à 09:24
Je ne peux malheureusement rien faire pour toi, ne connaissant pas cette lib. As-tu essayé de contacter les développeurs ?
11 mai 2020 à 22:38
Oui je vois ce que tu me dis, mais après plusieurs essais je ne parviens pas à changer l'URL dans mon ImageView de mon adapter :
Que dois-je mettre dans ma méthode ?
12 mai 2020 à 09:21
12 mai 2020 à 09:36
Après avoir fait quelques manipulations, j'ai l'impression que je parviens à changer l'image des cartes suivante, mais pas celle qui s'affiche en premier. Celle-ci impossible de modifier les données et "d'actualiser" la carte.