Android 谷歌地图 onInfoWindowClick 唯一标识标记

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

您好,我正在使用 google android maps v2 并向 map 添加了一堆标记,但是我需要向标记对象添加额外的数据,以便稍后在 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);
    }

关于Android 谷歌地图 onInfoWindowClick 唯一标识标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14732052/

相关文章:

android - TabHost 可以在 Android 的另一个元素中使用吗?

android - Android 版谷歌分析。收到通知的用户被计为活跃用户

google-maps - 谷歌地图 v3 标记鼠标悬停工具提示

android - 如何使用 Android 在 Google map 中的两个位置之间绘制折线?

php - 在android中从mysql数据库检索数据

android - 尝试在空对象引用上调用虚拟方法 'void com.google.android.gms.maps.GoogleMap.setOnMapLongClickListener'

java - 无法在RelativeLayout中使用RecyclerView查看ImageView

android - 从 getBuyIntent 返回的 PendingIntent 始终为空

javascript - 带有参数(托管图像的 URL)的 Ng map 标记图标不起作用

google-maps - 在 Google map 上使用文本代替标记