Associer un objet avec le Marqueur (google map v2)
Dans mon application j'ai quelques objets qui ont leur emplacement sur la carte à l'aide de marqueurs.
Le problème est que le seul moyen que j'ai trouvé pour gérer marqueur de clics est
googleMap.setOnMarkerClickListener(new ... {
@Override
public void onMarkerClick(Marker marker) {
//how to get the object associated to marker???
}
})
En d'autres termes je reçois le Marqueur de l'objet tandis que la seule interface que j'ai me permet de définir simplement MarkerOptions.
Aucun moyen d'associer un Marqueur avec un objet?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez associer l'objet arbitraire en utilisant Marqueur's setTag() méthode
Pour récupérer les données associées à un marqueur, il vous suffit de le lire à l'aide de son getTag() puis il la jeta à son type d'origine.
Plus d'informations
Je pense que ce rappel n'a pas été très soigneusement, bien que l'Android de l'équipe, mais, c'est ce que nous avons.
Chaque fois que vous appelez
mMap.addMarker();
il renvoie l'généré marqueur. Vous pouvez ensuite utiliser une table de hachage ou d'autres données du titulaire de la structure de le rappeler.WeakHashMap
, donc quand unMarker
obtient le garbage collector, il en sera de ses associésWeakHashMap
d'entrée et deObject
valeur. Mais, oui, malheureusement, cela semble être la seule option à l'heure actuelle.Une autre option serait de créer une Carte dont les touches est un marqueur.getId() et la valeur est de notre objet.
De cette façon, nous n'aurions pas de conserver une référence à un Marqueur dans la mémoire, et ne pas avoir à vous soucier de ces ordures marqueurs.
Ici vous pouvez voir plus de réponses.