我有一个Activity
,左侧是ListFragment
,右侧是SupportMapFragment
。
列表和地图都由相同的数据支持。地图上数据的直观表示是Markers
。
我希望能够点击 列表项或标记,并获取其他可视化表示中的相应项
框架和我的数据的限制是:
Marker类是final,Marker的id没有修饰符。这就是为什么我不能用最简单的方法。
“重要的是不要超越对象(例如标记) 观点的生活。否则它将导致内存泄漏,因为视图不能 被释放。“(见SupportMapFragment)
标记的标题可以多次出现。这就是为什么昂贵的String比较不是我能去的方式。
是否有人为这个问题找到了有效的解决方案,或者能否为正确的方向提供推动力?
答案 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)