2012-12-24 215 views
0

我正在使用Android的MonoDevelop和MapsAndlocationDemo,並且有關於開始另一項活動的問題。Android開始活動

這裏是我的代碼:

public void loadActivity (Context ActivityContext) 
    { 
     var second = new Intent(ActivityContext, typeof(LocationDetailsActivity)); 
     second.PutExtra("FirstData", "Data from FirstActivity"); 
     StartActivity (second); 
    } 

此代碼工作完全從MapWithOverlayActivity : MapActivity類調​​用時。我想在調用地圖標記的OnTap方法時從MapItemizedOverlay: ItemizedOverlay類中調用它。

我試圖讓該方法是靜態的。這裏是我的這段代碼:

static public void loadActivity (Context ActivityContext) 
    { 
     var second = new Intent(ActivityContext, typeof(LocationDetailsActivity)); 
     second.PutExtra("FirstData", "Data from FirstActivity"); 
     StartActivity (second); 
    } 

不過,現在我得到以下錯誤:An object reference is required for the non-static field, method or property Android.Content.Context.StartActivity(Android.Content.Intent)

我可以請有一些信息,爲什麼這是不行的,而一些幫助得到它的工作。

回答

1

如果有幫助,您可以使用Android的全局應用程序對象。這裏有一個例子:

public class MyApp extends Application{ 
    private String foo = null; 

    public String getFoo(){ 
     return foo; 
    } 
} 

public class MyActivity extends Activity { 
    private MyApp app; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     app = ((MyApp)getApplication()); 

     String thing = app.getFoo(); 
    } 
} 

如果您需要的方法是從任何地方訪問,你可以用你的意圖代替的getFoo方法:)我認爲它應該工作。應用參考是here

+0

感謝您的信息。如果可能,你能向我解釋我的問題中錯誤的含義嗎?還有如何讓它工作。 – Garry

+0

什麼是需要的「對象引用」? – Garry

+0

您是否嘗試過MapItemizedOverlay.this.loadActivity?我不完全確定 – SalGad