Android-通过多个ClusterManager将InfoWindowAdapter连接到Google地图

Android-通过多个ClusterManager将InfoWindowAdapter连接到Google地图,android,infowindow,Android,Infowindow,我有一个Google Maps V2,在我的setUpMap()方法中,我将Google Map附加一个infoWindowAdapter,如下所示: ClusterManager<OffersMarker> rentClusterManager = new ClusterManager<OffersMarker>(this, gmap); gmap.setInfoWindowAdapter(rentClusterManager.getMarkerManager());

我有一个Google Maps V2,在我的setUpMap()方法中,我将Google Map附加一个infoWindowAdapter,如下所示:

ClusterManager<OffersMarker> rentClusterManager = new ClusterManager<OffersMarker>(this, gmap);
gmap.setInfoWindowAdapter(rentClusterManager.getMarkerManager());
ClusterManager rentClusterManager=newclustermanager(这是gmap);
setInfoWindowAdapter(rentClusterManager.getMarkerManager());
这里有更多的代码,但关键是这是可行的,当我点击标记时,我可以看到信息窗口

因为我有两个俱乐部经理,所以我有一个问题:

ClusterManager<OffersMarker> rentClusterManager = new ClusterManager<OffersMarker>(this, gmap);
ClusterManager<OffersMarker> saleClusterManager = new ClusterManager<OffersMarker>(this, gmap);

gmap.setInfoWindowAdapter(rentClusterManager.getMarkerManager()); //<-- THIS DOESN'T WORK
gmap.setInfoWindowAdapter(saleClusterManager.getMarkerManager()); //<-- ONLY THIS WORKS
ClusterManager rentClusterManager=newclustermanager(这是gmap);
ClusterManager saleClusterManager=新的ClusterManager(此,gmap);

setInfoWindowAdapter(rentClusterManager.getMarkerManager())// 您只能将单个
InfoWindowAdapter
设置为
GoogleMap
对象。在您的情况下,它将被
saleClusterManager.getMarkerManager()覆盖

但作为一种解决方法,您可以将调用转发给相应的集群管理器

gmap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter()
{
    @Override
    public View getInfoWindow(Marker marker)
    {
        View view = rentClusterManager.getMarkerManager().getInfoWindow(marker);
        if( view == null )
            view = saleClusterManager.getMarkerManager().getInfoWindow(marker);
        return view;
    }

    @Override
    public View getInfoContents(Marker marker)
    {
        View view = rentClusterManager.getMarkerManager().getInfoContents(marker);
        if( view == null )
            view = saleClusterManager.getMarkerManager().getInfoContents(marker);
        return view;
    }
});

由于某些原因,视图对我来说从来都不是空的,所以同一个适配器一直被调用。。。