Отправить данные между действиями ошибка по намерению - PullRequest
0 голосов
/ 21 декабря 2011

Я пытаюсь отправить данные из оверлея в другой вид деятельности с этим классом

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 работает

Ответы [ 3 ]

2 голосов
/ 21 декабря 2011

Для создания нового намерения вам необходимо получить доступ к экземпляру Context. ItemizedOverlay не распространяется от него.

Вы инициализируете намерение так:

Intent nuevoLugar=new Intent(mContext, editarLugar.class);

Вы должны убедиться, что editarLugar является Activity.

Но вам также необходим доступ к активности. Так как я думаю, мы можем предположить, что вы создаете его из Activity, вы можете запустить его так:

if(mContext instanceof Activity) {
    ((Activity)mContext).startActivity(nuevoLugar);
}

Боже мой, вы можете просто позвонить:

mContext.startActivity(nuevoLugar);
2 голосов
/ 21 декабря 2011

первый аргумент должен быть Context. пожалуйста попробуйте Intent nuevoLugar = new Intent (mContext, editarLugar.class);

2 голосов
/ 21 декабря 2011

В этом случае это должно работать:

Intent nuevoLugar = new Intent(mContext, editarLugar.class);

При условии, что editarLugar extends Activity и объявлено в AndroidManifest.xml.И для начала деятельности:

mContext.startActivity(nuevoLugar);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...