我的活动有一个按钮,可以通过点击地图打开新的MapActivity来选择位置。
地图有覆盖覆盖onTap方法以获取位置,但我想将该位置返回到上一个活动但是,我不知道如何将地理点返回到mapactivity以调用setResult( )和finish()方法,因为我无法从Overlay.onTap方法中调用它们。
有什么想法吗?
答案 0 :(得分:2)
解决这个问题:
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();
}
答案 1 :(得分:1)
使用意图...
调用新活动然后,使用onActivityResult(int,int,Intent)从当前活动中调用新活动..... 当你完成被调用的活动时,U应该从新活动中获取数据,因为调用活动放在堆栈上...
希望这有助于......:)