Android 如何从覆盖onTap方法将按下的位置返回到MapActivity

Android 如何从覆盖onTap方法将按下的位置返回到MapActivity,android,overlay,android-mapview,Android,Overlay,Android Mapview,我有一个活动,它有一个按钮,可以打开一个新的MapActivity,通过点击地图来选择一个位置 地图有覆盖onTap方法以获取位置的覆盖,但我想将该位置返回到上一个活动,但我不知道如何将地质点返回到mapactivity以调用setResult()和finish()方法,因为我无法从overlay.onTap方法调用它们 有什么想法吗?使用意图调用新活动 然后,使用onActivityResult(int,int,Intent)从当前活动调用新活动。。。。。 当您完成被调用的活动时,您应该从新活

我有一个活动,它有一个按钮,可以打开一个新的MapActivity,通过点击地图来选择一个位置

地图有覆盖onTap方法以获取位置的覆盖,但我想将该位置返回到上一个活动,但我不知道如何将地质点返回到mapactivity以调用setResult()和finish()方法,因为我无法从overlay.onTap方法调用它们


有什么想法吗?

使用意图调用新活动

然后,使用onActivityResult(int,int,Intent)从当前活动调用新活动。。。。。 当您完成被调用的活动时,您应该从新活动获取数据,因为调用活动被放置在堆栈上

希望这有帮助……:)

这样解决:

class tapOverlay extends Overlay
{
    public GeoPoint lastTap=null;
    String strCalle;
    private Context context;    
    public tapOverlay(Context c)
    {
        this.context=c;     
    }
}
@Override
public boolean onTap(GeoPoint p, MapView mapView) {
    lastTap = p;
    mapView.getController().animateTo(p);
    ...
    strCalle = sb.toString(); //from geocoder
    ...

    devolverResultado();
    return true;        
}    

private void devolverResultado()
{
    MapActivity ma = (MapActivity) context;
    Intent i = new Intent();
    Bundle b = new Bundle();
    b.putInt("dlat", lastTap.getLatitudeE6());
    b.putInt("dlng", lastTap.getLongitudeE6());
    b.putString("calle",strCalle);
    i.putExtras(b);
    ma.setResult(Activity.RESULT_OK, i);
    ma.finish();
}

我解决了,但不是那样。我将上下文传递给overlay构造函数,然后在onTap方法上,我将其转换回MapView对象,以便能够调用setResult方法,它成功了