我一直在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
。 最佳答案
使用HashMap<Marker, MyObject>
解决方法时,您需要能够在getInfoContents中对其进行检索。
如果要为InfoWindowAdapter做一个单独的类(而不是匿名类),则必须通过构造函数发送此映射。它不漂亮,所以还有另一种选择:
您可能想尝试将setData(Object)
和getData()
添加到Marker
的Android Maps Extensions,因此可以将MyObject
保留为Marker
。