2016-06-20 1 views
1

Dans mon application, j'ai une fenêtre d'information sur le marqueur dans la carte, comme celle de l'image ci-dessous.Android: entrée de la fenêtre d'information

example Je voudrais ajouter un bouton ou une case à cocher dans la fenêtre d'information.

Il existe un moyen d'ajouter un objet d'entrée dans la fenêtre d'informations?

+0

oeil à cette réponse dans ce poste et essayer de faire la même chose [des fenêtres personnalisées marqueur de mise en page] (http://stackoverflow.com/a/15091202/2267302) – rojiTOCH

Répondre

1

Il existe un moyen d'ajouter un objet d'entrée dans la fenêtre d'informations?

N ° La fenêtre d'information est un bitmap. Il se trouve être un bitmap créé à partir d'un fichier de mise en page, mais il s'agit toujours d'un bitmap. Vous êtes invités à mettre un widget interactif dans la disposition de la fenêtre d'informations, mais il ne réagira pas à la saisie de l'utilisateur.

Vous pouvez détecter lorsque l'utilisateur appuie sur une fenêtre d'informations et afficher une fenêtre contextuelle contenant des widgets interactifs (par exemple, un dialogue).

+0

ok merci très beaucoup, bonne idée. Je vais le faire :) – Jay

+0

Comment puis-je ajouter un écouteur dans la fenêtre Info? – Jay

+0

@Jay: Voir la réponse de Gabriel ci-dessous. Vous définissez un 'OnMarkerClickListener' et l'enregistrez avec le' GoogleMap' via 'setOnMarkerClickListener()'. – CommonsWare

0

Vous devez cacher l'infowindow normal, puis sur le marqueur cliquez sur votre propre fenêtre, peut-être un AlertDialog avec votre disposition.

N'oubliez pas de retourner vrai; pour cacher infowindow normale

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