0

Ich entwickle Map-basierte Anwendung, ich verwendete Cluster zum Anordnen von Markern. Es funktioniert gut. Jetzt muss ich eine Nachricht anzeigen, wenn ich auf clusterManager klicke, und wenn ich auf Element klicke (nur eine Markierung), damit ich den Unterschied zwischen ihnen machen kann.Wie bekomme ich ClusterManager Klicken Sie auf und ClusterManager Element klicken Sie in Android

Hier ist mein Code, setOnClusterClickListener und setOnClusterItemClickListener heißt nicht, also bitte Was ist falsch in meinem Code.

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); 

Antwort

2

Sie sollten setOnMarkerClickListener anrufen, bevor setOnClusterClickListener und setOnClusterItemClickListener

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; 
    } 
}); 
Verwandte Themen