我正在使用 for 循环根据从数据库中检索到的位置在地图上制作标记。
我有一个包含两个 TextView 的布局,我想用标记的名称和地址(从数据库中检索)填充它们。
我尝试使用 googleMap.setInfoWindowAdapter() 但它所做的只是完全改变了所有标记的布局(这显然不是我需要的)。
那么有没有办法让我独立更改每个标记的信息窗口?
实现 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;
}
祝你好运 :)
显示两行文本的最简单方法是使用对信息窗口的内置支持。在每个标记上设置标题和片段时,Marker
如果您没有设置自己的InfoWindowAdapter
.
如果您的地址是多行文本,则上述内容将无法正常工作,您需要提供自己的InfoWindowAdapter
实现。这样做时,只需使用Marker
发送到getInfoContents
or的参数getInfoWindow
:从中检索标题和片段并放入您的TextViews
using 中setText
。
当要显示超过 2 个文本或其他数据类型时,它会更加复杂,但是如果您在某些时候需要它,请查看以下答案:Android google maps add to marker own tag