我正在尝试使用此类
将数据从叠加层发送到其他活动public class Capas extends ItemizedOverlay<OverlayItem>
{
MapView Map;
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
@SuppressWarnings("unused")
private Context mContext;
public Capas(Drawable defaultMarker, Context context)
{
super(boundCenterBottom(defaultMarker));
mContext = context;
}
@Override
public boolean onTouchEvent(MotionEvent event, MapView mapView)
{
if (event.getAction() == 1) {
GeoPoint puntoTocado = mapView.getProjection().fromPixels((int) event.getX(),(int) event.getY());
Intent nuevoLugar=new Intent(Capas.this,editarLugar.class);
nuevoLugar.putExtra("latitud",puntoTocado.getLatitudeE6());
nuevoLugar.putExtra("longitud",puntoTocado.getLongitudeE6());
StartActivity()
}
return false;
}
}
但是这会返回下一个错误构造函数Intent(Capas,Class)是未定义的。
我尝试使用Intent nuevoLugar=new Intent(Capas.class,editarLugar.class);
Intent nuevoLugar=new Intent(this,editarLugar.class);
,但是anoone可以使用
答案 0 :(得分:2)
在这种情况下,这应该有效:
Intent nuevoLugar = new Intent(mContext, editarLugar.class);
前提是editarLugar extends Activity
并在AndroidManifest.xml
中声明。
并开始活动:
mContext.startActivity(nuevoLugar);
答案 1 :(得分:2)
要创建新意图,您需要访问Context
实例。 ItemizedOverlay
并未延伸。
您可以像这样初始化意图:
Intent nuevoLugar=new Intent(mContext, editarLugar.class);
您需要确保editarLugar
是Activity
。
但是,您还需要访问该活动。因为我认为我们可以假设你是从一个Activity创建的,你可以像这样启动它:
if(mContext instanceof Activity) {
((Activity)mContext).startActivity(nuevoLugar);
}
击> <击> 撞击>
我的不好,你可以打电话:
mContext.startActivity(nuevoLugar);
答案 2 :(得分:2)
第一个参数应该是Context。请尝试Intent nuevoLugar = new Intent(mContext,editarLugar.class);