我正在使用带有MapsAndlocationDemo的MonoDevelop for Android,我对启动另一项活动有疑问。
这是我的代码:
public void loadActivity (Context ActivityContext)
{
var second = new Intent(ActivityContext, typeof(LocationDetailsActivity));
second.PutExtra("FirstData", "Data from FirstActivity");
StartActivity (second);
}
从MapWithOverlayActivity : MapActivity
类调用时,此代码可以正常工作。我希望在调用地图标记的MapItemizedOverlay: ItemizedOverlay
方法时从OnTap
类调用它。
我试图让方法成为静态的。这是我的代码:
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)
我能否提供一些有关为什么不起作用的信息,以及一些有助于它运作的信息。
答案 0 :(得分:1)
如果有帮助,您可以使用Android的全局Application对象。这是一个例子:
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();
}
}
如果您需要可以从任何地方访问该方法,您可以用您的Intent替换getFoo方法:)我认为它应该可以工作。申请参考是here