2011-12-20 34 views
0

活動誤差之間發送數據我想從覆蓋數據發送到其他活動與此類的意圖

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; 
}   

}

但這回我的下一個錯誤的構造意圖(CAPAS ,Class)未定義。 我嘗試用Intent nuevoLugar=new Intent(Capas.class,editarLugar.class);Intent nuevoLugar=new Intent(this,editarLugar.class);但anoone工作

+0

當我意圖mContecxt返回我空和應用程序崩潰,我inizialice mContext? – colymore 2011-12-20 23:55:35

+0

你應該看看你在哪裏實例化Capas對象。你叫'新Capas(marker,null)'? – user802421 2011-12-21 20:04:52

回答

2

在這種情況下,這應該工作:

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

只要editarLugar extends ActivityAndroidManifest.xml聲明。 並啓動活動:

mContext.startActivity(nuevoLugar); 
2

要創建你需要獲得訪問Context實例的新意圖。 ItemizedOverlay不從它擴展。

您必須初始化的意圖是這樣的:

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

你需要確保editarLugarActivity

但是,您還需要訪問該活動。因爲我認爲,我們可以假設你是從一個活動創建它,你可以像這樣啓動它:

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

我的壞,你可以致電:

mContext.startActivity(nuevoLugar); 
+1

另外一個很好的閱讀:http://www.oracle.com/technetwork/java/codeconvtoc-136057.html;) – pablisco 2011-12-20 23:17:33

+1

Context.startActivity()方法也可用。所以你不需要在那裏演員。 – user802421 2011-12-20 23:18:53

2

第一論點應該是一個背景。請嘗試Intent nuevoLugar = new Intent(mContext,editarLugar.class);

+0

ouh耶,多數民衆贊成,謝謝你! – colymore 2011-12-20 23:22:20