我有这种情况:
- 一键式主要活动。单击后,它会启动“mapActivity”
- 地图活动(扩展 MapActivity)使用 ItemizedOverlay(扩展 ItemizedOverlay)类来标记地图上的地点。
现在,我想从我的逐项叠加中启动另一个活动。我实现了以这种方式启动一项活动作为标准意图:
@Override
public boolean onTap(GeoPoint point, MapView mapView) {
boolean tapped = super.onTap(point, mapView);
if (!tapped){
Intent intent = new Intent();
intent.setClass(this.context, EditarLugarActivity.class);
this.context.startActivity (intent);
return true;
}
EditarLugarActivity 是一个从用户那里获取文本输入的活动。现在,我需要从 Itemized Overlay 活动中获取该文本。上下文具有来自地图活动上下文的值,并以这种方式在构造函数中设置:
public MiItemizedOverlay(Context context, Drawable defaultMarker) {
super(boundCenterBottom(defaultMarker));
this.context = context;
populate();
}
为此,我尝试以这种方式使用 'sartActivityForResult' 而不是 'this.content.startActivity(intent):
@Override
public boolean onTap(GeoPoint point, MapView mapView) {
boolean tapped = super.onTap(point, mapView);
if (!tapped){
Intent intent = new Intent();
intent.setClass(this.context, EditarLugarActivity.class);
this.context.startActivityForResult (intent,1);
return true;
}
但编译器无法识别。'this.context' 不起作用,因为它适用于简单的 'startActivity'
有人可以帮我吗?谢谢!
编辑 - 添加我的 MiItemizedOverlay 类的第一行与“扩展”:
public class MiItemizedOverlay extends ItemizedOverlay<OverlayItem> {
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
private Context context; [....]