Wie kann ich die Markierungen in Android Google Maps API v2 anklickbar machen, damit sie entweder ein Menü mit Optionen aufrufen oder einfach eine neue Aktivität starten? Ich glaube, ich habe die Markierungen in meiner App derzeit in einer "Newb" -Methode erstellt. Ich habe ihnen weder einen Namen noch eine Methode zugewiesen, um sie mit dem Rest des erforderlichen Codes zu verknüpfen.
googleMap.addMarker(new MarkerOptions()
.position(latLng)
.title("My Spot")
.snippet("This is my spot!")
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));
Wenn Sie darauf antworten, geben Sie bitte einen Beispielcode für eine Markierung an, die mit einem eindeutigen Namen eingeführt und dann als anklickbar festgelegt wird, um eine neue Aktivität zu öffnen.
OnInfoWindowClickListenerCallback
. Es gibt eine Methode in GoogleMap dafür:googleMap.setOnInfoWindowClickListener(listener);
setTag(position)
beim Hinzufügen eines Markers zur Karte.getTag()
aufsetOnMarkerClickListener
Hörerquelle
Vermeiden Sie die Verwendung von Aktivitätsimplementen für OnMarkerClickListener. Verwenden Sie einen lokalen OnMarkerClickListener
Sie benötigen eine Karte, um das mit der Markierung verknüpfte Originaldatenmodell nachzuschlagen
Sie benötigen ein Datenmodell
Fügen Sie einige Daten in das Datenmodell ein
Wenn Sie einen neuen Marker mithilfe eines Datenmodells erstellen, fügen Sie beide zur Maker-Map hinzu
Verwenden Sie für ein On-Click-Marker-Ereignis einen lokalen OnMarkerClickListener:
Um das Infofenster anzuzeigen, rufen Sie das ursprüngliche Datenmodell von der Markierungskarte ab:
quelle
Eine andere Lösung: Sie erhalten den Marker anhand seines Titels
quelle
Hier ist mein ganzer Code einer Kartenaktivität mit 4 anklickbaren Markierungen. Wenn Sie auf eine Markierung klicken, wird ein Infofenster angezeigt. Nach dem Klicken auf das Infofenster gelangen Sie zu einer anderen Aktivität: Englisch, Deutsch, Spanisch oder Italienisch. Wenn Sie OnMarkerClickListener trotz OnInfoWindowClickListener verwenden möchten, müssen Sie nur diese Zeile tauschen:
dazu:
diese Linie:
dazu:
und am Ende der Methode "onMarkerClick":
Ich denke es kann für jemanden hilfreich sein;)
quelle
quelle
Ich habe ein
mMap.setOnMarkerClickListener(this);
in deronMapReady(GoogleMap googleMap)
Methode hinzugefügt . Jedes Mal, wenn Sie auf eine Markierung klicken, wird der Textname in der Toastmethode angezeigt.}}
Sie können diesen Link als Referenz überprüfen Marker
quelle
Ich habe das obige Beispiel bearbeitet ...
quelle