我必须通过单击 infoWindow 开始一些活动(我可以setOnInfoWindowClickListener()
用 我应该可以为每个地图标记设置一个 ID。我可以将自定义 ID 传递给地图上的每个标记吗?或者我如何infoWindow
使用这个 id 创建按钮(如果我能做到这一点,我可以传递这个 id)。
问问题
2886 次
1 回答
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,并对相应的数据执行某些操作,例如打开一个包含详细信息的新活动。
于 2013-02-14T20:33:17.433 回答