2017-11-20 3 views
0

Zunächst bin ich noch neu in Xamarin und ich versuche, ein Click-Ereignis für eine Standard InfoWindow zu erstellen. Die Sache ist, den folgenden Code unter MarkerOptions (d. H. .SetTitle, .SetSnippet) zu verwenden, erzeugt ein Standard-InfoWindow, wenn ich auf den Marker klicke, ohne Änderungen oder Änderungen (Custom InfoWindow) auf XML vorzunehmen.Wie erstelle ich ein Klick-Ereignis in einem "Standard-Info-Fenster" basierend auf den Marker-Informationen für Google Maps v2, in Xamarin Android?

Marker Info

LatLng latlng = new LatLng(4.887746, 114.943652); 
MarkerOptions options = new MarkerOptions() 
    .SetPosition(latlng) 
    .SetIcon(BitmapDescriptorFactory.FromResource(Resource.Drawable.icon)) 
    .SetTitle("title1") 
    .SetSnippet("address"); 

marker1 = gmap.AddMarker(options); 

marker2 = gmap.AddMarker(new MarkerOptions() 
    .SetPosition(latlng2 
    .SetIcon(BitmapDescriptorFactory.FromResource(Resource.Drawable.icon)) 
    .SetTitle("title2") 
    .SetSnippet("address")); 

aber mein Problem ist, dass ich weiß nicht, wie für jeden Marker ein Click-Ereignis zu erstellen. Zum Beispiel wird marker1 öffnen Activity1 und marker2 öffnet Activity2.

Meine Frage ist, ist es für mich möglich, ein Klickereignis für jede Markerinfo zu erstellen, basierend auf einer Standard InfoWindow? Ich habe die OnInfoWindowClick für eine Custom InfoWindow ausprobieren, und es hat gut funktioniert. Aber ich frage mich immer noch, ob es getan werden kann mit einem Standard-InfoWindow, generiert aus dem obigen Code.

Ich habe andere Foren und andere Seiten überprüft und konnte immer noch nicht herausfinden, wie man es in Xamarin programmiert. Ich denke, es könnte ein kleines Problem sein, das ich vielleicht verpasst habe, aber wenn jemand seinen Code teilen könnte, um das Informationsfenster basierend auf der Position des Markers zu zeigen, wäre ich sehr froh. Ich bin offen für alle anderen Vorschläge und besten Lösungen, an die ihr vielleicht gedacht habt.

Hope you guys können mir helfen, vielen Dank im Voraus.

Antwort

0

Die Klasse GoogleMap verfügt über ein Ereignis InfoWindowClick, das Sie anschließen sollten, um Klickereignisse im Informationsfenster anzuhören.

gmap.InfoWindowClick += HandleInfoWindowClick; 

private void HandleInfoWindowClick(object sender, GoogleMap.InfoWindowClickEventArgs e) 
{ 
    var marker = eventArgs.Marker; 
    // do stuff... 
} 

Dadurch wird ein einzelner Event-Handler erstellt, der auf alle Marker reagiert.

Xamarin hat eine schöne Probe auf how to use Google Maps on GitHub in their samples repo.

Verwandte Themen