【问题标题】:How to get ClusterManager click and ClusterManager item click in android如何在 android 中获得 ClusterManager 点击和 ClusterManager 项目点击
【发布时间】:2018-02-13 20:56:39
【问题描述】:

我正在开发基于地图的应用程序,我使用集群来安排标记。它工作正常。现在,我需要在单击 clusterManager 时显示一条消息,并且在单击 item(只有一个标记)时显示一条消息,以便我可以在它们之间做出差异。

这是我的代码,setOnClusterClickListenersetOnClusterItemClickListener 没有被调用,请问我的代码出了什么问题。

    mClusterManager = new ClusterManager<MyItem>(this, getMap());

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

    mClusterManager.setOnClusterClickListener(new ClusterManager.OnClusterClickListener<MyItem>() {
        @Override
        public boolean onClusterClick(Cluster<MyItem> cluster) {
            Log.d("cluster","clicked");
            return true;
        }
    });
    mClusterManager.setOnClusterItemClickListener(new ClusterManager.OnClusterItemClickListener<MyItem>() {
        @Override
        public boolean onClusterItemClick(MyItem item) {
            Log.d("cluster item","clicked");
            return true;
        }
    });
    getMap().setOnMarkerClickListener(mClusterManager);

【问题讨论】:

    标签: android google-maps google-maps-markers markerclusterer


    【解决方案1】:

    你应该在 setOnClusterClickListener 和 setOnClusterItemClickListener 之前调用 setOnMarkerClickListener

    mClusterManager = new ClusterManager<MyItem>(this, getMap());
    getMap().setOnMarkerClickListener(mClusterManager); // 
    getMap().setOnCameraChangeListener(mClusterManager);
    try {
        readItems();
    } catch (JSONException e) {
        Toast.makeText(this, "Problem reading list of markers.", Toast.LENGTH_LONG).show();
    }
    
    mClusterManager.setOnClusterClickListener(new ClusterManager.OnClusterClickListener<MyItem>() {
        @Override
        public boolean onClusterClick(Cluster<MyItem> cluster) {
            Log.d("cluster","clicked");
            return true;
        }
    });
    mClusterManager.setOnClusterItemClickListener(new ClusterManager.OnClusterItemClickListener<MyItem>() {
        @Override
        public boolean onClusterItemClick(MyItem item) {
            Log.d("cluster item","clicked");
            return true;
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多