群集标记单击事件未触发android

群集标记单击事件未触发android,android,google-maps,Android,Google Maps,我正在开发一个android应用程序,需要在地图上显示标记,因为我正在使用具有集群功能的google地图。我已经从官方开发者网站下载了一个演示示例。它具有显示标记集群的代码,以及在特定集群上触发单击事件的方法。这是我的密码: public class ClusteringDemoActivity extends BaseDemoActivity implements ClusterManager.OnClusterClickListener<MyItem> { private

我正在开发一个android应用程序,需要在地图上显示标记,因为我正在使用具有集群功能的google地图。我已经从官方开发者网站下载了一个演示示例。它具有显示标记集群的代码,以及在特定集群上触发单击事件的方法。这是我的密码:

public class ClusteringDemoActivity extends BaseDemoActivity implements ClusterManager.OnClusterClickListener<MyItem> {
    private ClusterManager<MyItem> mClusterManager;
    private ArrayList<My_Lat_Lng> list = new ArrayList<My_Lat_Lng>();
    private My_Lat_Lng my_lat_lng = null;
    private GoogleMap mMap = null;

    @Override
    protected void startDemo() {
        mMap = getMap();
        mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(21.0000, 78.0000), 1));

        mClusterManager = new ClusterManager<MyItem>(this, mMap);
        mMap.setOnCameraChangeListener(mClusterManager);

        mMap.setOnInfoWindowClickListener(mClusterManager.getMarkerManager());
        mMap.setInfoWindowAdapter(mClusterManager.getMarkerManager());
        mMap.setOnMarkerClickListener(mClusterManager);


        try {
            readItems();
        } catch (JSONException e) {
            Toast.makeText(this, "Problem reading list of markers.", Toast.LENGTH_LONG).show();
        }

        mClusterManager.setOnClusterClickListener(this);

        mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
            @Override
            public boolean onMarkerClick(Marker marker) {

                LatLng latlng = marker.getPosition();

                //Toast.makeText(getApplicationContext(), "" + latlng.toString(), Toast.LENGTH_LONG).show();

                return false;
            }
        });

    }

    private void readItems() throws JSONException {
        //InputStream inputStream = getResources().openRawResource(R.raw.radar_search);
        //List<MyItem> items = new MyItemReader().read(inputStream);
        loadArrayList();
        List<MyItem> items = new MyItemReader().read_Lat_Lng(list);
        mClusterManager.addItems(items);
    }

    private void loadArrayList() {


        my_lat_lng = new My_Lat_Lng("51.5145160", "-0.1270060");
        list.add(my_lat_lng);
        my_lat_lng = new My_Lat_Lng("51.5064490", "-0.1244260");
        list.add(my_lat_lng);
        my_lat_lng = new My_Lat_Lng("51.5097080", "-0.1200450");
        list.add(my_lat_lng);
        my_lat_lng = new My_Lat_Lng("51.5090680", "-0.1421420");
        list.add(my_lat_lng);
        my_lat_lng = new My_Lat_Lng("51.4976080", "-0.1456320");
        list.add(my_lat_lng);
        my_lat_lng = new My_Lat_Lng("51.5046150", "-0.1473780");
        list.add(my_lat_lng);
        my_lat_lng = new My_Lat_Lng("51.5077540", "-0.1378760");
        list.add(my_lat_lng);
        my_lat_lng = new My_Lat_Lng("51.5074250", "-0.1323230");
        list.add(my_lat_lng);
        my_lat_lng = new My_Lat_Lng("51.5070030", "-0.125560");
        list.add(my_lat_lng);
        my_lat_lng = new My_Lat_Lng("51.5061590", "-0.140280");
        list.add(my_lat_lng);
        my_lat_lng = new My_Lat_Lng("51.5047420", "-0.1470490");
        list.add(my_lat_lng);
        my_lat_lng = new My_Lat_Lng("51.5126760", "-0.1189760");
        list.add(my_lat_lng);
        my_lat_lng = new My_Lat_Lng("51.5108480", "-0.1208480");

        list.add(my_lat_lng);
    }

    @Override
    public boolean onClusterClick(Cluster<MyItem> cluster) {
              Toast.makeToast(getApplicationContext(),"click",Toast.LENGTH_LONG).show();
        return true;
    }



}
公共类ClusteringDemoActivity扩展BaseDemoActivity实现ClusterManager.OnClusterClickListener{
私人群集管理器McClusterManager;
private ArrayList list=new ArrayList();
private My_Lat_Lng My_Lat_Lng=null;
私有谷歌地图mMap=null;
@凌驾
受保护的void startDemo(){
mMap=getMap();
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(新LatLng(21.0000,78.0000),1));
mClusterManager=newclustermanager(这个,mMap);
mMap.SetonCamerachenglistener(McClusterManager);
mMap.setOnInfoWindowClickListener(mClusterManager.getMarkerManager());
setInfoWindowAdapter(mClusterManager.getMarkerManager());
mMap.setOnMarkerClickListener(mClusterManager);
试一试{
readItems();
}捕获(JSONException e){
Toast.makeText(这是“阅读标记列表的问题”,Toast.LENGTH_LONG.show();
}
setOnClusterClickListener(此);
setOnMarkerClickListener(新的GoogleMap.OnMarkerClickListener(){
@凌驾
公共布尔onMarkerClick(标记){
LatLng LatLng=marker.getPosition();
//Toast.makeText(getApplicationContext(),“”+latlng.toString(),Toast.LENGTH_LONG).show();
返回false;
}
});
}
私有void readItems()引发JSONException{
//InputStream InputStream=getResources().openRawResource(R.raw.radar\u search);
//列表项=新建MyItemReader().read(inputStream);
loadArrayList();
列表项=新建MyItemReader()。读取\u Lat\u Lng(列表);
McClusterManager.addItems(项目);
}
私有void loadArrayList(){
my_lat_lng=新my_lat_lng(“51.5145160”、“-0.1270060”);
列表。添加(我的拉丁液化天然气);
my_lat_lng=新my_lat_lng(“51.5064490”、“-0.1244260”);
列表。添加(我的拉丁液化天然气);
my_lat_lng=新my_lat_lng(“51.5097080”、“-0.1200450”);
列表。添加(我的拉丁液化天然气);
my_lat_lng=新my_lat_lng(“51.5090680”、“-0.1421420”);
列表。添加(我的拉丁液化天然气);
my_lat_lng=新my_lat_lng(“51.4976080”、“-0.1456320”);
列表。添加(我的拉丁液化天然气);
my_lat_lng=新my_lat_lng(“51.5046150”、“-0.1473780”);
列表。添加(我的拉丁液化天然气);
my_lat_lng=新my_lat_lng(“51.5077540”、“-0.1378760”);
列表。添加(我的拉丁液化天然气);
my_lat_lng=新my_lat_lng(“51.5074250”、“-0.1323230”);
列表。添加(我的拉丁液化天然气);
my_lat_lng=新my_lat_lng(“51.5070030”、“-0.125560”);
列表。添加(我的拉丁液化天然气);
my_lat_lng=新my_lat_lng(“51.5061590”、“-0.140280”);
列表。添加(我的拉丁液化天然气);
my_lat_lng=新my_lat_lng(“51.5047420”、“-0.1470490”);
列表。添加(我的拉丁液化天然气);
my_lat_lng=新my_lat_lng(“51.5126760”、“-0.1189760”);
列表。添加(我的拉丁液化天然气);
my_lat_lng=新my_lat_lng(“51.5108480”、“-0.1208480”);
列表。添加(我的拉丁液化天然气);
}
@凌驾
公共布尔onClusterClick(集群){
Toast.makeToast(getApplicationContext(),“单击”,Toast.LENGTH\u LONG.show();
返回true;
}
}

调试上述代码时,onClusterClick事件未触发。我无法理解原因,请提供一些帮助。

我认为这是因为您在MarkerclickListener上覆盖了
。尝试仅使用
setOnClusterClickListener
setOnClusterItemClickListener

尝试调用
mMap.setOnMarkerClickListener()…
它可能正在拦截click事件。是的,我正在单击群集这是您删除的群集吗
mMap.setOnMarkerClickListener(新的GoogleMap.OnMarkerClickListener()
是的,我已经删除了相同的onCreate()?是
startDemo()
中的自定义方法
BaseDemoActivity()
?使用
getMapAsync()
可能更好,因为
getMapAsync()
已经被弃用了。