我有一个带有按钮的活动,该按钮可打开一个新的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/