2016-06-20 16 views
1

In meiner Anwendung habe ich ein Info-Fenster auf Marker in der Karte, wie die im Bild unten.Android: Info Fenster Eingabe

example Ich würde eine Schaltfläche oder ein Kontrollkästchen im Info-Fenster hinzufügen.

Es gibt eine Möglichkeit, ein Eingabeobjekt im Infofenster hinzuzufügen?

+0

Blick zu verstecken und versuchen, den gleichen [benutzerdefinierte Fenster Layout Marker] zu tun (http://stackoverflow.com/a/15091202/2267302) – rojiTOCH

Antwort

1

Es gibt eine Möglichkeit, ein Eingabeobjekt im Infofenster hinzuzufügen?

Nein. Das Infofenster ist eine Bitmap. Es ist zufällig eine Bitmap, die aus einer Layoutdatei erstellt wurde, aber es ist immer noch eine Bitmap. Sie können gerne ein interaktives Widget in das Infofenster-Layout einfügen, es reagiert jedoch nicht auf Benutzereingaben.

Sie können erkennen, wenn der Benutzer auf ein Infofenster klickt und ein Popup anzeigt, das interaktive Widgets enthält (z. B. ein Dialogfeld).

+0

ok danke sehr viel, großartige Idee. Ich werde es tun :) – Jay

+0

Wie kann ich Listener im Info-Fenster hinzufügen? – Jay

+0

@Jay: Siehe Gabriels Antwort unten. Sie definieren einen 'OnMarkerClickListener' und registrieren ihn über' setOnMarkerClickListener() 'mit der' GoogleMap'. – CommonsWare

0

Sie müssen normal infowindow verstecken, dann auf Marker klicken Sie auf Ihr eigenes Fenster, vielleicht ein AlertDialog mit Ihrem Layout.

nicht vergessen, wahr zurückzugeben; normale Infofenster an dieser Antwort in diesem Beitrag

GoogleMap.OnMarkerClickListener onMarkerClickListener = new GoogleMap.OnMarkerClickListener(){ 

      @Override 
      public boolean onMarkerClick(Marker marker) { 
       //open your window 

     //For Example 
     final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
     builder.setMessage("Hey ive done my infowindow").setTitle("My own infowindow"); 
     builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) 
       dialog.dismiss(); 
      } 
     }); 
     AlertDialog dialog = builder.create(); 
     dialog.show(); 

      return true; //RETURNING TRUE going to hide normal infowindow 

     } 
     }; 
     googleMap.setOnMarkerClickListener(onMarkerClickListener); 
Verwandte Themen