我Markers
根据他们不同的信息有不同的展示在custom infowindow
。为此,我为每个信息窗口内容使用了不同的类。
Markers
我可以在我的地图上看到不同的东西。但是我点击它们,只显示最后构建的标记信息。基本上信息窗口的内容是相同的。我还注意到,当我点击时,它不会调用相关的信息窗口,而是调用最后创建的信息窗口 getInfoContents(Marker arg0)
。getInfoContents(Marker arg0)
但是我在最后添加的标记中收到了正确的标记。
对于地图中的所有标记,我们只能有一个信息窗口实现吗?并且基于标记识别我应该实现不同的内容吗?
标记类型 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()
我通过调用它们自己的实现来创建两个具有不同信息的标记并将其显示在地图中。
唯一的问题是它们都显示相同的信息,即最后一个标记的信息。