2015-12-28 24 views
2

我使用谷歌地图标记聚类在utils library可用。在点击一个集群,下面onClusterClick方法不叫。有没有Cluster click event簇标记点击事件的Android

@Override 
    public boolean onClusterClick(Cluster<MyItem> cluster) 
    {   
     return true; 
    } 

回答

2

你需要前加入这一行:

map.setOnMarkerClickListener(yourClusterManager); 
2

下面是如何实现您的要求,即点击集群或集群项目的方式。

mapSupportFragment.getMapAsync(new OnMapReadyCallback() { 
    @Override 
    public void onMapReady(GoogleMap googleMap) { 

     mMap = googleMap; //(Here mMap is my GoogleMap object declared & was initialized). 

     // Initialize the manager with the context and the map. 
     mClusterManager = new ClusterManager<AppClusterItem>(MFragmentActivity.this, mMap); 
     mClusterManager.setRenderer(new MyCustomRender(MFragmentActivity.this, mMap, mClusterManager)); 
     // Here which I used is my custom rendering class 

     // Point the map's listeners at the listeners implemented by the cluster manager. 
     mMap.setOnCameraChangeListener(mClusterManager); 
     mMap.setOnMarkerClickListener(mClusterManager); 

     mClusterManager.setOnClusterClickListener(new ClusterManager.OnClusterClickListener<AppClusterItem>() { 
      @Override 
      public boolean onClusterClick(Cluster<AppClusterItem> cluster) { 

       Log.e("I clicked @ ", "Cluster which consumes whole list of ClusterItems"); 
       return false; 
      } 
     }); 

     mClusterManager.setOnClusterItemClickListener(new ClusterManager.OnClusterItemClickListener<AppClusterItem>() { 
      @Override 
      public boolean onClusterItemClick(AppClusterItem item) { 
       Log.e("I clicked @ ", "Cluster Item"); 
       return false; 
      } 
     }); 
    } 
}); 

该解决方案随后将不会让你使用GoogleMap.setOnMarkerClickListener方法,那就这样吧,you can read this answer

1

莫比为时已晚,但如果有任何人想知道: 刚刚成立OnClusterItemClcikListener您CkusterManger:

 mClusterManager.setOnClusterItemClickListener(this); 

然后让你的类实现ClusterManager.OnClusterItemClickListener

activity a implements ClusterManager.OnClusterItemClickListener .... 

然后finaly通话

@Override 
public boolean onClusterItemClick(ClusterItem clusterItem) { 
    Toast.makeText(getActivity(), "clciked", Toast.LENGTH_SHORT).show(); 
    return true; 
}