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

地图上有一个覆盖层,该覆盖层会覆盖onTap方法以获取位置,但是我想将该位置返回到上一个活动,但是,我不知道如何将地理点返回到mapactivity以便调用setResult()并完成()方法,因为我无法从Overlay.onTap方法中调用它们。

有任何想法吗?

最佳答案

这样解决:

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();
}

关于android - 如何通过Overlay onTap方法将按下的位置返回给MapActivity,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3599410/

10-09 06:11