Bonjour à tous,
Cela fait quelques temps que je m'inspire du forum pour résoudre mes erreurs et suivre les cours qui sont géniaux
Mais la je vais devoir vous demander conseil car je ne pige pas la logique...
J'utilise l'API Google Maps pour afficher des Markers qui sont stockés sur mon serveur. Au début, j'utilisais un simple Thread pour faire la requète HTTP et pour Parser le tableau JSON que je récupérais. Ensuite, pour chaque élément du tableau je faisais appel à un Handler. En effet, pour pouvoir ajouter un Marker sur la map il faut ètre sur l'activité principale (d'ou le role du Handler). Néanmoins, le Handler ne suivait le traitement effectuer dans un boucle pour chaque élement du tableau: sur 70 élements seulement une vingtaine s'affichaient ... Je devais cliquer au moins 3 fois sur mon bouton pour tout afficher.
En faisant quelque recherche, j'ai vu qu'il était préférable d'utiliser un AsyncTasck pour justement effectuer ce traitement en entier et récupérer les élements de mon tableau.
Voila comment fonctionne mon code:
-> Appel du ASynctasck depuis mon activité principale
-> Dans le AsyncTasck, la requète HTTP se passe et je Parse mon tableau (en utilisant les méthodes DoInBackground() & onPostExecute())
-> Comment transmetter mes Markers d'ici à l'activité principale ?
J'ai essayer deux méthodes pour résoudre mon problème (mais qui ne marche pas):
-> Appel d'une méthode de l'activité principale depuis l'ASyncTasck pour afficher les Markers. Problème: je suis pas dans la bonne activité (Activité princpale nécessaire pour ajouter les Markers).
-> Faire appel à une méthode dans l'activité principale (qui fera appel à un Getter de mon tableau JSON de l'AsyncTasck) à la suite de mon ASyncTasck.execute(). Problème: le traitement n'attend pas la fin d'éxecution de l'AsyncTasck et appel direct la méthode qui m'affichera un NullPointerException car mon tableau JSON est vide (depuis le Getter).
Si quelqu'un pourrait m'orienter sur mon problème car la je ne vois pas du tout comment la jouer!
++
Partager