2010-12-15 4 views
1

Ich habe einen mapview, mit itemizedoverlays, genau wie in dem Beispiel von Android Developers Guide: http://developer.android.com/resources/tutorials/views/hello-mapview.htmlKann ich den onTap() -Dialog der Elemente auf meinem googlemapview personalisieren? (I hinzufügen möchte einen Knopf drauf)

In diesem Beispiel, wenn Sie auf einen Punkt drücken, wird es einen Dialog zeigte mit ein Pünktchen und ein Körper:

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, es funktioniert gut, und ich brauche immer noch, dass Dialog zu zeigen, aber ich brauche eine Schaltfläche hinzufügen, dass, wenn ich sie drücken sie eine neue Tätigkeit lädt, und vielleicht noch einige mehr Textzeilen

wie kann ich es tun? Ich kann nichts finden auf Google

Antwort

2

Sicher, das ist möglich.

So mache ich es. Beachten Sie, dass auch ein setNeutralButton möglich ist.
Das sind 3 Tasten, die du benutzen kannst, soweit ich weiß.

Schauen Sie sich das auch an. 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();