我在我的一个应用程序中使用地图。我想知道在点击标记时获取标记的关联对象的常见/有效方法是什么。
我今天的计划是这样的:
首先,我使用返回的标记创建对象的 ArrayList 和这些对象的 HashMapmMap.addMarker(...);
作为索引。
ArrayList<MyObject> items = new ArrayList<MyObject>();
HashMap<Marker, MyObject> markersAndObjects = new HashMap<Marker, MyObject>();
现在,我覆盖onMarkerClick()
like so
public boolean onMarkerClick(Marker clickedMarker) {
// send the object returned by markersAndObjects.get(clickedMarker) for processing
return false;
}
对此有什么想法吗?
建议的方法是使用带有标记 ID 和自定义数据的哈希。如果 Activity 被终止并恢复,Marker 对象可能会发生变化,但 ID 将保持不变。你的地图看起来像:
HashMap<String, MyObject> markersAndObjects = new HashMap<String, MyObject>();
标记对象有一个 getId() 方法来获取 ID。
[稍后编辑]
截至 2016 年 8 月,出现了新的 API,不再需要 HashMap。看https://developers.google.com/android/reference/com/google/android/gms/maps/model/Marker.html#setTag(java.lang.Object) https://developers.google.com/android/reference/com/google/android/gms/maps/model/Marker.html#setTag(java.lang.Object)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)