17

Ho visto che le persone stanno incontrando molte difficoltà con questo compito specifico e anch'io ho bisogno di aiuto.Android Google Map v2 - Avvio attività quando si fa clic su info marker Finestra

Ho creato con successo marcatori su una mappa utilizzando il codice predefinito fornito da Google. Ma ora voglio poter cliccare su "InfoWindow" per aprire una nuova attività in modo da poter aggiungere ulteriori informazioni.

Qualcuno conosce il modo migliore per farlo?

Se è possibile rispondere a questo , inserire un codice o un esempio. Qualsiasi aiuto sarebbe molto apprezzato!

+0

https://developers.google.com/maps/documentation/android/marker – Raghunandan

+1

fai a sapere di un esempio Raghunandan? dove posso vedere un po 'di codice? Grazie – user1977908

+0

http://www.verious.com/article/detect-info-window-click-implements-on-info-window-click-listener/. Esempio. visualizza un brindisi sulla finestra informativa fai clic su fai quello che vuoi facendo clic sulla finestra informativa modificando lo stesso – Raghunandan

risposta

54

aggiungere questo al codice

Mymap.setOnInfoWindowClickListener(new OnInfoWindowClickListener() { 
      @Override 
      public void onInfoWindowClick(Marker marker) { 
       Intent intent = new Intent(MapActivity.this,OtherActivity.class); 
       startActivity(intent); 


      } 
     }); 
+0

Grazie ha funzionato! Pubblicherò qualche codice di esempio per altri utenti! – user1977908

+1

Come passeresti un parametro con un marcatore? – AlexVPerl

+0

che cos'è Mymap? Il mio non può risolvere il simbolo 'setOnInfoWindowClickListener' perché Mymap non è corretto per il mio codice ... È l'istanza della classe GoogleMap? È la classe per l'attività? O è una nuova classe separata che eredita dalla classe GoogleMap? –

1
This method works even well with multiple markers. get the title of the marker using marker.getTitle() and Starts the activity based on which marker you clicked. 

public void onMapReady(GoogleMap googleMap) { 
     mMap = googleMap; 
     // Add a marker in Sydney and move the camera 
     LatLng chennai = new LatLng(12.9671, 80.2593); 
     mMap.addMarker(new MarkerOptions().position(chennai).title("Chennai")); 

     LatLng perungudi = new LatLng(12.97, 80.25); 
     mMap.addMarker(new MarkerOptions().position(perungudi).title("Perungudi")); 

     LatLng pallikarnai = new LatLng(12.9377, 80.2154); 
     mMap.addMarker(new MarkerOptions().position(pallikarnai).title("Pallikarnai")); 

     mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(chennai,12)); 
     mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() { 
      @Override 
      public boolean onMarkerClick(Marker marker) { 
       if (marker.getTitle().equals("Chennai")){ 
        Toast.makeText(MapsActivity.this, "Clicked"+marker.getTitle(), Toast.LENGTH_SHORT).show(); 
       } 
       return false; 
      } 
     }); 

    } 
Problemi correlati