不同的标记显示相同的信息窗口内容android google map v2
我有不同的不同的标记显示相同的信息窗口内容android google map v2,android,google-maps-android-api-2,marker,Android,Google Maps Android Api 2,Marker,我有不同的标记,基于它们在自定义信息窗口中显示的不同信息。为此,我为每个infowindow内容使用了不同的类 我可以在地图中看到不同的标记。但我点击它们,只有最后建成的标记的信息显示。信息窗口的内容基本上是相同的。 我还注意到,当我点击时,它不会调用相关的infowindow,而是调用最后创建的infowindow的getInfoContents(标记arg0)。但是我在最后添加的标记的getInfoContents(标记arg0)中收到了正确的标记 对于地图中的所有标记,我们只能有一个inf
标记
,基于它们在自定义信息窗口
中显示的不同信息。为此,我为每个infowindow内容使用了不同的类
我可以在地图中看到不同的标记。但我点击它们,只有最后建成的标记的信息显示。信息窗口的内容基本上是相同的。
我还注意到,当我点击时,它不会调用相关的infowindow,而是调用最后创建的infowindow的getInfoContents(标记arg0)
。但是我在最后添加的标记的getInfoContents(标记arg0)
中收到了正确的标记
对于地图中的所有标记,我们只能有一个infowindow实现?基于标记识别,我应该实施不同的内容吗
标记类型A实现
public class MapGoogleOverlayV2 {
private ViewGroup infoWindow;
public boolean onTap() {
infoWindow = (ViewGroup)((Activity)mContext).getLayoutInflater().inflate(R.layout.info_window_layout, null);
/*Custom info window implementation is below */
googleMap.setInfoWindowAdapter(new InfoWindowAdapter() {
@Override
public View getInfoWindow(Marker arg0) {
return null;
}
@Override
public View getInfoContents(Marker arg0) {
// set title
((TextView)infoWindow.findViewById(R.id.title)).setText("Test text");
// set freeText
((TextView)infoWindow.findViewById(R.id.text)).setText(Long.toString("1"));
return infoWindow;
}
});
}
}
标记B在具有不同信息的另一个类中实现。
我正在呼叫onTap()
我通过调用它们自己的实现来创建两个具有不同信息的标记,并在地图中显示它们
唯一的问题是它们都显示相同的信息,这是最后一个标记的信息。setter(和GoogleMap.setInfoWindowAdapter
似乎是setter)替换了以前的设置
如果在两个类中都调用onTap
,则只有最后一个InfoWindowAdapter
仍然存在
相反,您只需设置一个InfoWindowAdapter
,并根据getInfoContents
参数(Marker arg0
)决定需要为哪个标记显示信息窗口。感谢您提供的信息。我相应地改变了我的解决方案。我试图在公共布尔onMarkerClick(最终标记)中调用“googleMap.setInfoWindowAdapter(newInfoWindowAdapter(){”)但它没有显示infowindow。这意味着在地图显示之前构建infowindow?我们不能在地图加载后将值设置为infowindow?我回答自己的问题。是的,我们可以动态设置新信息。我只要在有更新数据时再次调用infoWindowAdapter(new infoWindowAdapter()…方法,并使用新数据)。