2017-09-11 4 views
-1

Guten Nachmittag jeder, ich verwalte meine Google Maps v2 mit Cluster-Manager (ich benutze diese Bibliothek android-maps-utils) und ich möchte den Unterschied erhalten, wenn ein Marker geklickt und wenn ein Cluster-Manager geklickt, Aber Methoden ruft nicht, Also, was schief läuft in meinem Code, verbrachte ich 10 Tage in diesem kleinen Problem, also bitte helfen.ClusterManager OnClusterClickListener heißt nicht

HIER IST MEIN GANZES Code:

public class BigClusteringDemoActivity extends BaseDemoActivity implements ClusterManager.OnClusterClickListener,ClusterManager.OnClusterItemClickListener { 
    private ClusterManager<MyItem> mClusterManager; 

    @Override 
    protected void startDemo() { 
     getMap().moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(51.503186, -0.126446), 10)); 

     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(); 
     } 
     getMap().setOnMarkerClickListener(mClusterManager); 

    } 


    private void readItems() throws JSONException { 
     InputStream inputStream = getResources().openRawResource(R.raw.radar_search); 
     List<MyItem> items = new MyItemReader().read(inputStream); 
     for (int i = 0; i < 10; i++) { 
      double offset = i/60d; 
      for (MyItem item : items) { 
       LatLng position = item.getPosition(); 
       double lat = position.latitude + offset; 
       double lng = position.longitude + offset; 
       MyItem offsetItem = new MyItem(lat, lng); 
       mClusterManager.addItem(offsetItem); 
      } 
     } 
    } 


    @Override 
    public boolean onClusterClick(Cluster cluster) { 
     Log.d("cluster","clicked" + cluster.getItems()); 
     return false; 
    } 

    @Override 
    public boolean onClusterItemClick(ClusterItem item) { 
     Log.d("cluster","clicked" + item.getPosition()); 
     return false; 
    } 
} 

Antwort

0

Sie haben Ihre ClusterManager auf der Karte nicht verbunden mit onClick

Sie haben diese eine getMap().setOnCameraIdleListener(mClusterManager);

Versuchen Sie, diese als gut

getMap().setOnMarkerClickListener(mClusterManager); 
mClusterManager.setOnClusterClickListener(this); 
mClusterManager.setOnClusterItemClickListener(this);` 

Dies wird die Geräte für Listener Sie verwenden hinzugefügt.

+0

Ich benutze sie, aber ich bekomme immer noch kein Ergebnis. – naima

+0

Sie sagten "hier ist mein ganzer Code" und diese 3 Zeilen sind nicht da :) es wird den Hörer nicht registrieren, wenn sie nicht gekoppelt sind. –

+0

Vielen Dank für Ihre Antwort. Ich bin nur ein Anfänger :) bitte außer diesen Zeilen, was das gleiche Problem verursachen kann? – naima