use*_*613 2 android android-maps-v2
我正在我的一个应用程序中使用地图.我想知道在点击标记时获取标记的关联对象的常用/有效方法是什么.
我一直计划的一天是这样的:
首先,我使用返回的标记mMap.addMarker(...);作为索引创建我的Objects的ArrayList和这些Objects的HashMap .
ArrayList<MyObject> items = new ArrayList<MyObject>();
HashMap<Marker, MyObject> markersAndObjects = new HashMap<Marker, MyObject>();
Run Code Online (Sandbox Code Playgroud)
现在,我重写onMarkerClick(),像这样
public boolean onMarkerClick(Marker clickedMarker) {
// send the object returned by markersAndObjects.get(clickedMarker) for processing
return false;
}
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
建议的方法是使用带有标记ID和自定义数据的哈希.如果活动被杀死并恢复,Marker对象可能会更改,但ID将保持不变.你的地图看起来像:
HashMap<String, MyObject> markersAndObjects = new HashMap<String, MyObject>();
Run Code Online (Sandbox Code Playgroud)
标记对象有一个getId()方法来获取ID.
[稍后编辑]
截至2016年8月,有一个新的API,不再需要HashMap.请参阅 https://developers.google.com/android/reference/com/google/android/gms/maps/model/Marker.html#setTag(java.lang.Object)
| 归档时间: |
|
| 查看次数: |
3406 次 |
| 最近记录: |