2010-12-15 47 views
1

J'ai un MapView, avec itemizedoverlays, exactement comme dans l'exemple de guide des développeurs Android: http://developer.android.com/resources/tutorials/views/hello-mapview.htmlPuis-je personnaliser la boîte de dialogue onTap() des éléments de mon googlemapview ?? (Je veux ajouter un bouton sur elle)

A cet exemple, lorsque vous appuyez sur un élément, il est montré une boîte de dialogue avec un Tittle et un corps:

protected boolean onTap(int index) { 
    OverlayItem item = mOverlays.get(index); 
    AlertDialog.Builder dialog = new AlertDialog.Builder(mContext); 
    dialog.setTitle(item.getTitle()); 
    dialog.setMessage(item.getSnippet()); 
    dialog.show(); 
    return true; 
} 

ok, il fonctionne très bien, et je dois encore montrer cette boîte de dialogue, mais je dois ajouter un bouton, que quand je le presse il charge une nouvelle activité, et peut-être plus de lignes de texte.

comment puis-je le faire? Je ne peux pas trouver rien sur google

Répondre

2

Bien sûr, cela est possible.

Voilà comment je le fais. Notez qu'il y a aussi un setNeutralButton possible.
C'est 3 boutons que vous pouvez utiliser autant que je sache.

Regardez aussi. AlertDialog on Android Developers

 AlertDialog.Builder builder = new AlertDialog.Builder(mContext); 
     builder.setMessage(item.getSnippet()) 
       .setTitle(item.getTitle()) 
       .setCancelable(true) 
       .setPositiveButton("View Details", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         Intent intent = new Intent(mContext, org.gpsagenda.DetailsContainer.class); 
         intent.putExtra("id", item.ID()); 
         intent.putExtra("isConnected", MainMap.getIsConnected()); 
         mContext.startActivity(intent); 
        } 
       }) 
       .setNegativeButton("Close window", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         dialog.dismiss(); 
        } 
       }); 
     AlertDialog alert = builder.create(); 
     alert.show();