0

I am creating an app where I am clustering multiple request on maps. I am able to cluster request on map but I want to get click event on cluster. I tried using setOnClusterItemClickListener but I am unable to capture click event in that method.I am also having OnCameraChangeListener in map which runs when I tap on cluster. Is this causing issue because of both listeners or I am doing something wrong.

Here's is my listener's code

map.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() {
        @Override
        public void onCameraChange(CameraPosition cameraPosition) {
            cameraChangeHandler.removeCallbacks(throttledRunnable);
            cameraChangeHandler.postDelayed(throttledRunnable, 300);
            if (marker != null) {
                marker.remove();
                mClusterManager.clearItems();
            }
            LatLng latLng = cameraPosition.target;
            appSharedPreference.setLatitude(String.valueOf(latLng.latitude));
            appSharedPreference.setLongitude(String.valueOf(latLng.longitude));
            marker = map.addMarker(new MarkerOptions().position(latLng));
            submitData();
        }
    });
    map.setOnMarkerClickListener(mClusterManager);
mClusterManager.setOnClusterItemClickListener(new ClusterManager.OnClusterItemClickListener<MyItem>() {
@Override
public boolean onClusterItemClick(MyItem myItem) {
    Toast.makeText(getActivity(),"Hello",Toast.LENGTH_LONG).show();
    return false;
}

});

Vivek Mishra
  • 5,669
  • 9
  • 46
  • 84

1 Answers1

0

Using the link provided I was able to get this working using following code:

map.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() {
            @Override
            public void onCameraChange(CameraPosition cameraPosition) {
                if (marker != null) {
                    marker.remove();
                    mClusterManager.clearItems();
                }
                LatLng latLng = cameraPosition.target;
                appSharedPreference.setLatitude(String.valueOf(latLng.latitude));
                appSharedPreference.setLongitude(String.valueOf(latLng.longitude));
               // marker = map.addMarker(new MarkerOptions().position(latLng));
                submitData();
                pDialouge.hide();

            }
        });
        mClusterManager.setRenderer(new MyClusterRenderer(getActivity(), map, mClusterManager));
        map.setOnMarkerClickListener(mClusterManager);
        mClusterManager
                .setOnClusterClickListener(new ClusterManager.OnClusterClickListener<MyItem>() {
                    @Override
                    public boolean onClusterClick(Cluster<MyItem> cluster) {
                        clickedCluster = cluster;
                        return false;
                    }
                });
        mClusterManager
                .setOnClusterItemClickListener(new ClusterManager.OnClusterItemClickListener<MyItem>() {
                    @Override
                    public boolean onClusterItemClick(MyItem item) {
                        clickedClusterItem = item;
                        return false;
                    }
                });
Vivek Mishra
  • 5,669
  • 9
  • 46
  • 84