【问题标题】:Android Google Maps Uniquely identify marker onInfoWindowClickAndroid 谷歌地图唯一标识标记 onInfoWindowClick
【发布时间】:2013-01-21 19:51:13
【问题描述】:

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

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

标记似乎是静态最终的,无法扩展,所以我有点不知道如何做到这一点。

谢谢,

安迪

【问题讨论】:

  • 也许下次放一些代码不会把这个标记下来。

标签: android google-maps-markers android-maps google-maps-android-api-2


【解决方案1】:

你可以创建一个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);
    }

【讨论】:

  • 我最终没有使用最后一部分 (setinfowindowadapter) 我只是使用标记作为哈希映射的引用并拉回我的对象​​。有什么理由说明这会是一个问题吗?垃圾收集?
  • 不,我认为您需要在自定义窗口中使用它们。我现在注意到它是针对onInfoWindowClick 的。同样的事情
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多