Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 带有InfoWindowAdapter的ClusterManager不';行不通_Android_Google Maps_Google Maps Markers - Fatal编程技术网

Android 带有InfoWindowAdapter的ClusterManager不';行不通

Android 带有InfoWindowAdapter的ClusterManager不';行不通,android,google-maps,google-maps-markers,Android,Google Maps,Google Maps Markers,下面是我用来生成信息窗口的代码 /* * Set the Google Marker Cluster Manager. */ mClusterManager = new ClusterManager<>(this, mGoogleMap); mGoogleMap.setOnCameraIdleListener(mClusterManager); mGoogleMap.setInfoWindowAdapter(mClusterMan

下面是我用来生成信息窗口的代码

    /*
     * Set the Google Marker Cluster Manager.
     */
    mClusterManager = new ClusterManager<>(this, mGoogleMap);

    mGoogleMap.setOnCameraIdleListener(mClusterManager);
    mGoogleMap.setInfoWindowAdapter(mClusterManager.getMarkerManager());
    mGoogleMap.setOnMarkerClickListener(mClusterManager.getMarkerManager());
    mGoogleMap.setOnInfoWindowClickListener(mClusterManager);

    mGoogleMap.setInfoWindowAdapter(mPlaceInfoWindowAdapter);

    mGoogleMap.setOnMarkerClickListener(mClusterManager);

    GoogleMap.InfoWindowAdapter infoWindowAdapter = new GoogleMap.InfoWindowAdapter()
    {
        @Override
        public View getInfoWindow(Marker marker)
        {
            Toast.makeText(MainActivity.this, "getInfoWIndow", Toast.LENGTH_SHORT).show();
            return null;
        }

        @Override
        public View getInfoContents(Marker marker)
        {
            View v = LayoutInflater.from(MainActivity.this).inflate(R.layout.map_infowindow_layout, null);
            Toast.makeText(MainActivity.this, "getInfoContents", Toast.LENGTH_SHORT).show();
            return v;
        }
    };

    mClusterManager.getMarkerCollection().setOnInfoWindowAdapter(infoWindowAdapter);

    mClusterManager.getClusterMarkerCollection().setOnInfoWindowAdapter(infoWindowAdapter);

    mClusterManager.setOnClusterClickListener(new ClusterManager.OnClusterClickListener<MapMarker>()
    {
        @Override
        public boolean onClusterClick(Cluster<MapMarker> cluster)
        {
            Toast.makeText(MainActivity.this, "cluster click", Toast.LENGTH_SHORT).show();
            return false;
        }
    });

    mClusterManager.setOnClusterItemClickListener(new ClusterManager.OnClusterItemClickListener<MapMarker>()
    {
        @Override
        public boolean onClusterItemClick(MapMarker mapMarker)
        {
            Toast.makeText(MainActivity.this, "cluster item click", Toast.LENGTH_SHORT).show();
            return false;
        }
    });
/*
*设置Google标记群集管理器。
*/
mClusterManager=newclustermanager(这是mGoogleMap);
mGoogleMap.setonCameraideListener(mClusterManager);
setInfoWindowAdapter(mClusterManager.getMarkerManager());
setOnMarkerClickListener(mClusterManager.getMarkerManager());
mGoogleMap.setOnInfoWindowClickListener(mClusterManager);
setInfoWindowAdapter(mPlaceInfoWindowAdapter);
setOnMarkerClickListener(mClusterManager);
GoogleMap.InfoWindowAdapter InfoWindowAdapter=新建GoogleMap.InfoWindowAdapter()
{
@凌驾
公共视图getInfoWindow(标记器)
{
Toast.makeText(MainActivity.this,“getInfoWIndow”,Toast.LENGTH_SHORT.show();
返回null;
}
@凌驾
公共视图getInfoContents(标记器)
{
视图v=LayoutFlater.from(MainActivity.this).充气(R.layout.map\u infowindow\u layout,null);
Toast.makeText(MainActivity.this,“getInfoContents”,Toast.LENGTH_SHORT.show();
返回v;
}
};
mClusterManager.getMarkerCollection().setOnInfoWindowAdapter(infoWindowAdapter);
mClusterManager.getClusterMarkerCollection().setOnInfoWindowAdapter(infoWindowAdapter);
mClusterManager.setOnClusterClickListener(新的ClusterManager.OnClusterClickListener()
{
@凌驾
公共布尔onClusterClick(集群)
{
Toast.makeText(MainActivity.this,“集群单击”,Toast.LENGTH_SHORT.show();
返回false;
}
});
mClusterManager.setOnClusterItemClickListener(新的ClusterManager.OnClusterItemClickListener()
{
@凌驾
公共布尔onClusterItemClick(MapMarker MapMarker)
{
Toast.makeText(MainActivity.this,“集群项目单击”,Toast.LENGTH_SHORT.show();
返回false;
}
});
下面是单击地图上的标记时的结果图像。 InfoWindowAdapter的方法永远不会被调用


我还尝试设置
mGoogleMap.setOnMarkerClickListener(mClusterManager)
,但这也不起作用。我是做错了什么,还是这是谷歌代码的错误?

我通过从
onClusterItemClick
方法返回
false
解决了这个问题。如果设置为true,则信息窗口不会显示。

我通过从
onClusterItemClick
方法返回
false
解决了这个问题。如果设置为true,则信息窗口不会显示。

在其他任何地方它都说它需要为true,但您将其切换为false的技巧也解决了我的问题,谢谢!在其他地方,它说它必须是真的,但你把它转换成假的技巧也解决了我的问题,谢谢!