我一直在Stack Overflow上关注以下线程:
custom info window adapter with custom data in map v2
我已经看到了之前评论的答案,并且跟着他们,但我无法做到。
在onMarkerClick上,我能够获得与之关联的元素:
HashMap<Marker, MyObject>
MyObject是包含我想在标记InfoWindow上显示的数据的元素。
我无法做的是将数据放在屏幕上。它炸毁了应用程序。我该怎么办?
我正在使用:
TextView markerTitle = (TextView) getActivity().findViewById(R.id.marker_place_name);
markerTitle.setText(MyObject.getName());
R.id.marker_place_name就像上面提到的线程上windowlayout.xml上的示例tv_lat TextView
。
如何正确更改数据以显示在标记InfoWindow
上?
在InfoAdapter
getInfoContents()
我无法检索MyObject
。
答案 0 :(得分:2)
使用HashMap<Marker, MyObject>
解决方法时,您需要能够在getInfoContents中检索它。
如果您正在为InfoWindowAdapter执行单独的类(而不是匿名类),则必须通过构造函数发送此映射。它不漂亮,所以还有另一种选择:
您可以尝试Android Maps Extensions向setData(Object)
添加getData()
和Marker
,这样您就可以将MyObject
与Marker
保持一致}。