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