0

我正在使用带有 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)

我能否提供一些关于为什么这不起作用的信息,以及一些帮助它工作的信息。

4

1 回答 1

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 方法:) 我认为它应该可以工作。应用参考在这里

于 2012-12-24T06:55:09.707 回答