2011-11-16 2 views
4

J'ai une vue de carte avec plusieurs broches tracées sur différentes adresses. Tout fonctionne très bien. Le problème survient lorsque plusieurs éléments pointent vers la même adresse. Par exemple,Liste cliquable dans OverlayItem (MapView pour Android)

Unité 1/45 ABC Street, XYZ
Unité 7/45 ABC Street, XYZ. J'utilise la ligne de code suivante pour récupérer le lat et le long afin de créer un GeoPoint. Où a est l'adresse et gc est l'objet GeoCoder.

Selon l'API, les deux adresses mentionnées ci-dessus renvoient les mêmes coordonnées.

Ainsi, tout en traçant les broches sur la carte, elles se remplacent l'une l'autre et se terminent par une broche pour plusieurs adresses.

J'ai essayé d'implémenter une liste qui affiche toutes les adresses récurrentes sur le ballon. La tentative fut en vain et j'ai réalisé que

OverlayItem(GeoPoint point, java.lang.String title, java.lang.String snippet) 

me permet seulement de fournir deux chaînes à afficher sur le ballon.

Avez-vous une idée de la manière dont je pourrais insérer une liste affichant plusieurs adresses?

Répondre

0

Vous devez mettre en œuvre une mesure OverlayItem

public class ListOverlayItem extends OverlayItem { 
    private List<Address> list; 

    public ListOverlayItem(GeoPoint point, List<Address> list) { 
     super(point, "", ""); 
    } 

    public List<Address> getList() { 
     return list; 
    } 
} 

alors dans votre ItemizedOverlay personnalisée, vous pouvez utiliser cette liste pour créer un dialogue personnalisé avec une liste dans la méthode onTap

public class ListItemizedOverlay extends ItemizedOverlay<ListOverlayItem> { 

    @Override 
    protected boolean onTap(int index) { 
     // get item they tapped from index 
     // use getList() to populate the listview in the custom dialog 
    } 
} 
+0

Merci Craigy! Probablement juste le début dont j'avais besoin! Je vais vous dire comment ça s'est passé :) – Neo

+0

Salut je fais pareil, je suis remplir une liste lorsque vous cliquez sur une overlayitem, donner le code à l'intérieur de la méthode onTab.Tout fonctionne bien.Mais quand je sélectionne la liste, ma liste Listner ne fonctionne pas à chaque fois . –

+0

@RajeshSharma vous devriez poster une nouvelle question à ce sujet. Assurez-vous de publier toutes les exceptions que vous voyez et le code pertinent. – Craigy

Questions connexes