Android Google Map – Le marqueur cliqué ouvre une nouvelle activité ou une fenêtre plus grande

J'ai cherché de l'aide sur la mise en œuvre de OnMarkerClickListener, mais rien que j'ai trouvé n'a fonctionné. C'est mon marqueur ci-dessous et lorsque vous cliquez dessus, il ne change que la couleur (bleu clair). Je cherche qu'il ouvre une fenêtre plus grande afin que je puisse mettre plus d'informations. Est-ce possible?

googlemap.addMarker(new MarkerOptions() .position(new LatLng(49.378,-0.3904)) .title("Hello World") .snippet("This is my test app") .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE))); 

Le marqueur fonctionne bien au-dessus de ma carte, mais maintenant, j'aimerais cliquer sur le marqueur et ouvrir une nouvelle activité / page ou une fenêtre plus grande, ce qui est toujours plus facile à utiliser. Comme je suis un vrai novice à faire des applications, si quelqu'un qui a réussi à avoir un exemple de travail, s'il vous plaît, pouvez-vous mettre un lien ou un code.

  • Existe-t-il un auditeur pour quand WebView affiche son contenu?
  • Comment puis-je interagir avec Google Docs depuis Android?
  • Personnalisation des couleurs Android ListView?
  • Ajout de "diviseurs de section" à ma mise en page?
  • Android comment passer une Activity.class comme argument pour une fonction
  • Comment faire de RatingBar pour montrer cinq étoiles
  • Merci d'avance!

    Modifier:

    À partir du tutoriel suggéré, j'ai modifié certains des MainActivity.java.

    J'ai ajouté dans OnMarkerClickListener et j'ai choisi d'ajouter des méthodes non mises en œuvre à la classe publique

      public class MainActivity extends Activity implements LocationListener, OnMarkerClickListener { 

    Sous le vide privé setUpMap (), j'ai ajouté à mon code: private Markker myMarker, setonMarkerclick listenener et myMarker =,:

      private Marker myMarker; { googlemap.setOnMarkerClickListener(this); myMarker = googlemap.addMarker(new MarkerOptions() .position(new LatLng(LatLng)) .title("Hello World") .snippet("My First App") .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE))); } 

    Dans la méthode non mise en œuvre en bas, j'ai:

      @Override public boolean onMarkerClick(Marker arg0) { // TODO Auto-generated method stub return false; 

    Qu'ai-je besoin de changer dans la partie Boolean OnMarkerClick? Je n'obtiens aucune erreur, mais ça ne fonctionne pas. Qu'ai-je d'autre ajouter ou changer?

    Toute aide est appréciée!

    3 Solutions collect form web for “Android Google Map – Le marqueur cliqué ouvre une nouvelle activité ou une fenêtre plus grande”

    Événements sur les marqueurs

    Ne cochez pas le marqueur après avoir cliqué sur Android map v2

    Citation de la publication ci-dessus

    Vous pouvez utiliser un OnMarkerClickListener pour écouter les événements de clic sur le marqueur. Pour configurer cet auditeur sur la carte, appelez GoogleMap.setOnMarkerClickListener (OnMarkerClickListener). Lorsqu'un utilisateur clique sur un marqueur, OnMarkerClick (Marker) sera appelé et le marqueur sera transmis comme argument. Cette méthode renvoie un booléen qui indique si vous avez consommé l'événement (c.-à-d., Vous souhaitez supprimer le comportement par défaut). Si elle renvoie false, le comportement par défaut se produira en plus de votre comportement personnalisé. Le comportement par défaut d'un événement de clic de marqueur est de montrer sa fenêtre d'information (si disponible) et de déplacer l'appareil photo de sorte que le marqueur soit centré sur la carte.

    https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/GoogleMap.OnMarkerClickListener .

    Utilisez OnMarkerClickListener sur votre marqueur.

    Vérifiez le lien pour les extraits de code

    Google Maps API v2: Comment rendre les marqueurs accessibles?

    Exemple: fonctionne sur mon téléphone

      Marker source,destination; GoogleMap mMap; mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)) .getMap(); source = mMap.addMarker(new MarkerOptions() .position(sc) .title("MyHome") .snippet("Bangalore") .icon(BitmapDescriptorFactory.fromResource(R.drawable.pin))); destination= mMap.addMarker(new MarkerOptions() .position(lng) .title("MapleBear Head Office") .snippet("Jayanager") .icon(BitmapDescriptorFactory.fromResource(R.drawable.pin))); mMap.setOnMarkerClickListener(new OnMarkerClickListener() { @Override public boolean onMarkerClick(Marker arg0) { if(arg0.getTitle().equals("MyHome")) // if marker source is clicked Toast.makeText(MainActivity.this, arg0.getTitle(), Toast.LENGTH_SHORT).show();// display toast return true; } }); 

    Ce code gère l'événement de clic du fabricant et charge une nouvelle mise en page (XML) avec quelques informations:

     /** * adding individual markers, displaying text on on marker click on a * bubble, action of on marker bubble click */ private final void addLocationsToMap() { int i = 0; for (Stores store : storeList) { LatLng l = new LatLng(store.getLatitude(), store.getLongtitude()); MarkerOptions marker = new MarkerOptions() .position(l) .title(store.getStoreName()) .snippet("" + i) .icon(BitmapDescriptorFactory .defaultMarker(BitmapDescriptorFactory.HUE_GREEN)); googleMap.addMarker(marker); ++i; } googleMap.setOnInfoWindowClickListener(new OnInfoWindowClickListener() { @Override public void onInfoWindowClick(Marker marker) { try { popUpWindow.setVisibility(View.VISIBLE); Stores store = storeList.get(Integer.parseInt(marker .getSnippet())); // set details email.setText(store.getEmail()); phoneNo.setText(store.getPhone()); address.setText(store.getAddress()); // setting test value to phone number tempString = store.getPhone(); SpannableString spanString = new SpannableString(tempString); spanString.setSpan(new UnderlineSpan(), 0, spanString.length(), 0); phoneNo.setText(spanString); // setting test value to email tempStringemail = store.getEmail(); SpannableString spanString1 = new SpannableString(tempStringemail); spanString1.setSpan(new UnderlineSpan(), 0, spanString1.length(), 0); email.setText(spanString1); storeLat = store.getLatitude(); storelng = store.getLongtitude(); } catch (ArrayIndexOutOfBoundsException e) { Log.e("ArrayIndexOutOfBoundsException", " Occured"); } } }); } 

    Si vous avez besoin de l'événement Cliquez sur un marché, ce code c'est la solution.

     private GoogleMap mGoogleMap; mGoogleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() { @Override public boolean onMarkerClick(Marker arg0) { if(arg0 != null && arg0.getTitle().equals(markerOptions2.getTitle().toString())); // if marker source is clicked Toast.makeText(menu.this, arg0.getTitle(), Toast.LENGTH_SHORT).show();// display toast return true; } }); 

    Bonne chance

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.