2012-12-24 178 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