2

我正在使用 for 循环根据从数据库中检索到的位置在地图上制作标记。

我有一个包含两个 TextView 的布局,我想用标记的名称和地址(从数据库中检索)填充它们。

我尝试使用 googleMap.setInfoWindowAdapter() 但它所做的只是完全改变了所有标记的布局(这显然不是我需要的)。

那么有没有办法让我独立更改每个标记的信息窗口?

4

2 回答 2

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;
}

祝你好运 :)

于 2013-09-25T14:47:19.943 回答
0

显示两行文本的最简单方法是使用对信息窗口的内置支持。在每个标记上设置标题和片段时,Marker如果您没有设置自己的InfoWindowAdapter.

如果您的地址是多行文本,则上述内容将无法正常工作,您需要提供自己的InfoWindowAdapter实现。这样做时,只需使用Marker发送到getInfoContentsor的参数getInfoWindow:从中检索标题和片段并放入您的TextViewsusing 中setText

当要显示超过 2 个文本或其他数据类型时,它会更加复杂,但是如果您在某些时候需要它,请查看以下答案:Android google maps add to marker own tag

于 2013-06-23T17:36:23.590 回答