我正在使用for循环根据从数据库中检索到的位置在地图上制作标记。
我有一个带有两个TextView的布局,我想用标记的名称和地址填充(从数据库中检索)。
我尝试使用googleMap.setInfoWindowAdapter()但它所做的只是改变了所有标记的布局(这显然不是我需要的)。
那么有没有办法允许我独立更改每个标记的信息窗口?
答案 0 :(得分:1)
实施onMarkerClickListener。获取标记对象如下
Marker marker = map.addMarker(new MarkerOptions().position(latLong)
.title(string1).snippet(string2)));
单击它时,您将以重写方法获取标记。 从中获取标题和摘录如下。
@Override
public boolean onMarkerClick(Marker marker) {
map.setInfoWindowAdapter(new MarkerAdapter(getActivity(), marker
.getTitle(), marker.getSnippet()));
return false;
}
祝你好运:)
答案 1 :(得分:0)
显示两行文本的最简单方法是使用内置的信息窗口支持。在每个标记上设置标题和摘要时,如果您没有设置自己的Marker
,则会在点击InfoWindowAdapter
后显示它们。
如果您的地址是多行文字,那么上述内容将无法正常运行,您需要提供自己的InfoWindowAdapter
实施。这样做只需使用发送到Marker
或getInfoContents
的{{1}}参数:从中检索标题和摘要,然后使用getInfoWindow
将TextViews
放入。{/ p >
当有超过2个文本显示或其他数据类型时,它甚至更复杂,但如果你需要它,请看看这个答案:Android google maps add to marker own tag