嗨,我正在使用 google android maps v2 并向地图添加一堆标记,但是我需要向标记对象添加其他数据,以便稍后在 onInfoWindowClick 函数中调用。
我目前有一个 MarkerManager 单例类,它维护一个并发的场所列表,但是在 onInfoWindowClick 函数中,我需要通过 MarkerManager 中的某种形式的键来调用它。
似乎标记是静态最终的,不能扩展,所以我有点坚持如何做到这一点。
谢谢,
安迪
嗨,我正在使用 google android maps v2 并向地图添加一堆标记,但是我需要向标记对象添加其他数据,以便稍后在 onInfoWindowClick 函数中调用。
我目前有一个 MarkerManager 单例类,它维护一个并发的场所列表,但是在 onInfoWindowClick 函数中,我需要通过 MarkerManager 中的某种形式的键来调用它。
似乎标记是静态最终的,不能扩展,所以我有点坚持如何做到这一点。
谢谢,
安迪
您可以创建一个 HashMap:
Map<Marker, YourCustomObject> theMap;
然后将标记添加为键:
Marker m = mMap.addMarker(new MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.whatever)).position(new LatLng(mLat, mLong)));
theMap.put(m, yourCustomObjectInstance);
最后,在您的信息窗口提供程序中,您可以通过提供给getInfoWindow
函数的标记检索您的对象`:
mMap.setInfoWindowAdapter(new InfoWindowAdapter() {
@Override
public View getInfoWindow(Marker marker) {
YourCustomObject yourCustomObjectInstance = theMap.get(marker);
}