2

嗨,我正在使用 google android maps v2 并向地图添加一堆标记,但是我需要向标记对象添加其他数据,以便稍后在 onInfoWindowClick 函数中调用。

我目前有一个 MarkerManager 单例类,它维护一个并发的场所列表,但是在 onInfoWindowClick 函数中,我需要通过 MarkerManager 中的某种形式的键来调用它。

似乎标记是静态最终的,不能扩展,所以我有点坚持如何做到这一点。

谢谢,

安迪

4

1 回答 1

16

您可以创建一个 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);
    }
于 2013-02-06T15:03:10.727 回答