2013-02-14 118 views
3

我必须点击infoWindow开始一些活动(我可以用setOnInfoWindowClickListener()做到这一点),但是这个活动可以不同,我需要别的东西。我应该有可能为每个地图标记设置一个ID。我可以将自定义ID传递给地图上的每个标记吗?或者我可以用这个id在infoWindow中创建按钮(如果我能做到这一点,我可以通过这个ID)。开始活动,点击谷歌地图标记infoWindow

回答

7

我建议使用HashMap或类似的东西。当你遍历你的对象的列表,并为他们创造的标记,也标记添加到列表中,使用对象为重点的ID,并标记为值:

private HashMap<Integer, Marker> markerMap = new HashMap<Integer, Marker>(); 

...

for(MarkerObject obj : this.markerObjects) 
{ 
    //If the marker isn't already being displayed 
    if(!markerMap.containsKey(obj.getId())) 
    { 
     //Add the Marker to the Map and keep track of it 
     this.markerMap.put(obj.getId(), this.mMap.addMarker(getMarkerForObject(obj))); 
    } 
} 

然后你可以使用一个OnInfoWindowClickListener找到您的地图抽头标记的对象ID,做一些与相应的数据,如开放与细节的新活动。

+0

谢谢!我已经用hasp map,HashMap 解决了这个问题,其中String是marker.getId(),int是这个标记的一个我的id!谢谢! – 2013-02-15 12:21:34

+0

我在尝试,但我看到错误=(“投票要求15声望”,我没有声望( – 2013-02-16 13:00:07