【发布时间】:2023-03-21 06:32:01
【问题描述】:
根据custom infowindow 中显示的不同信息,我有不同的Markers。为此,我为每个信息窗口内容使用了不同的类。
我可以在我的地图中看到不同的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()
我通过调用它们自己的实现来创建两个具有不同信息的标记并将其显示在地图中。
唯一的问题是它们都显示相同的信息,即最后一个标记的信息。
【问题讨论】:
标签: android google-maps-android-api-2 marker