Android 如何为覆盖项设置标题/标题,并为该项创建onclick/long-pressed侦听器以启动新活动?

Android 如何为覆盖项设置标题/标题,并为该项创建onclick/long-pressed侦听器以启动新活动?,android,overlayitem,android-mapview,Android,Overlayitem,Android Mapview,我的应用程序将找到我周围的用户,并在地图上显示。 我可以在mapView上添加overlayItem,但如何为图像添加一些标题,例如用户名。 单击该项后,将显示一个对话框 我是否可以设置一个侦听器,当用户单击该框时可以调用新活动? 我的意图是,我可以通过OverlyItem转到用户配置文件。 有可能吗? 谢谢 我已经找到了解决方案,希望与感兴趣的ppl分享。 由于我无法回答自己的问题,我将编辑该问题 要为覆盖项添加标题,请执行以下操作: @Override public void draw(

我的应用程序将找到我周围的用户,并在地图上显示。 我可以在mapView上添加overlayItem,但如何为图像添加一些标题,例如用户名。

单击该项后,将显示一个对话框

我是否可以设置一个侦听器,当用户单击该框时可以调用新活动? 我的意图是,我可以通过OverlyItem转到用户配置文件。 有可能吗? 谢谢

我已经找到了解决方案,希望与感兴趣的ppl分享。 由于我无法回答自己的问题,我将编辑该问题

要为覆盖项添加标题,请执行以下操作:

 @Override
public void draw(android.graphics.Canvas canvas, MapView mapView, boolean shadow)
{
    super.draw(canvas, mapView, shadow);

    if (shadow == false)
    {
        //cycle through all overlays
        for (int index = 0; index < mOverlays.size(); index++)
        {
            OverlayItem item = mOverlays.get(index);

            // Converts lat/lng-Point to coordinates on the screen
            GeoPoint point = item.getPoint();
            Point ptScreenCoord = new Point() ;
            mapView.getProjection().toPixels(point, ptScreenCoord);

            //Paint
            Paint paint = new Paint();
            paint.setTextAlign(Paint.Align.CENTER);
            paint.setTextSize(mTextSize);
            paint.setARGB(150, 0, 0, 0); // alpha, r, g, b (Black, semi see-through)

            //show text to the right of the icon
            canvas.drawText(item.getTitle(), ptScreenCoord.x, ptScreenCoord.y+mTextSize, paint);
        }
    }
}

希望这有帮助,干杯

事实上,你可以回答你自己的问题,并将其标记为正确。
@Override
protected boolean onTap(int index) {
    OverlayItem item = mOverlays.get(index);


    AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
    builder.setMessage("Are you sure you want to see this user's profile?")
           .setCancelable(false)
           .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int id) {
                   Intent i = new Intent();
                    i = new Intent(mContext,
                            ViewFdProfile.class);
                    mContext.startActivity(i);
               }
           })
           .setNegativeButton("No", new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int id) {
                    dialog.cancel();
               }
           });
    AlertDialog alert = builder.create();
    alert.show();


    return true;
}