不同的标记显示相同的信息窗口内容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()…方法,并使用新数据)。