2016-09-01 14 views
2

Я разрабатываю приложение на основе карты, я использовал кластер для компоновки маркеров. Он работает нормально. Теперь, когда я нажимаю на маркер, мне нужно показать сообщение. Есть ли решение для этого?Как получить событие Clustered marker click в Android

mMap.setOnCameraIdleListener(mClusterManager); 
mMap.setOnMarkerClickListener(mClusterManager); 

я использовал setOnMarkerClickListener, но я не знаю, где это событие нажмите получите

ответ

2

Я сделал решение, как таким образом ..

mClusterManager = new ClusterManager<MyItem>(getActivity(), mMap, new MarkerManager(mMap){ 
       @Override 
       public boolean onMarkerClick(Marker marker) { 
        //here will get the clicked marker 
        return super.onMarkerClick(marker); 
       } 
      }); 
      mClusterManager.setRenderer(new CusterCustomMarkerRenderer(context , mMap, mClusterManager, HomeFragment.this)); 
      mClusterManager.setOnClusterClickListener(this); 
      mMap.setOnMarkerClickListener(mClusterManager); 
0

Похоже, что у вас есть первый шаг делается для того, чтобы обнаруживать события нажатия на маркеры при использовании маркеров кластеров , Затем, после вашего звонка до .setOnMarkerClickListener(mClusterManager), вам необходимо зарегистрировать clusterItemClickListener(), реализовав интерфейс ClusterManager.OnClusterItemClickListener<T>. Попробуйте это:

public class YourActivity extends AppCompatActivity implements 
      ClusterManager.OnClusterItemClickListener<YourClusterItem> { 

    .... 
    mMap.setOnCameraIdleListener(mClusterManager); 
    mMap.setOnMarkerClickListener(mClusterManager); 

    //set the onClusterItemClickListener 
    mClusterManager.setOnClusterItemClickListener(this); 

    //implement the onClusterItemClick interface 
    @Override 
    public boolean onClusterItemClick(YourClusterItem clusterItem){ 
     //handle click event  
     return true; 
    } 

}