列表&映射标记点击

时间:2013-01-09 15:12:56

标签: android google-maps-markers google-play-services

我有一个Activity,左侧是ListFragment,右侧是SupportMapFragment

列表和地图都由相同的数据支持。地图上数据的直观表示是Markers

我希望能够点击 列表项标记,并获取其他可视化表示中的相应项

框架和我的数据的限制是:

  1. Marker类是final,Marker的id没有修饰符。这就是为什么我不能用最简单的方法。

  2.   

    “重要的是不要超越对象(例如标记)   观点的生活。否则它将导致内存泄漏,因为视图不能   被释放。“(见SupportMapFragment

  3. 标记的标题可以多次出现。这就是为什么昂贵的String比较不是我能去的方式。

  4. 是否有人为这个问题找到了有效的解决方案,或者能否为正确的方向提供推动力?

2 个答案:

答案 0 :(得分:3)

如果您希望能够注册标记上的点击次数,则需要覆盖InfoWindowAdapter

您可以为标记的标题和片段提供唯一信息,并以此样式实现界面的方法:

@Override
public View getInfoWindow(Marker marker) {
  // do nothing here in order to obtain the original info window border.
  return null;
}

@Override
public View getInfoContents(Marker marker) {
  // Create your own view here. Obtain the unique information stored
  //  in title / snippet of the current marker.
  return createdView;
}

现在您可以设置OnInfoWindowClickListener并使用存储在那里的唯一信息。

答案 1 :(得分:0)