Android启动活动

时间:2012-12-24 06:43:46

标签: c# android-intent static monodevelop start-activity

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

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

1 个答案:

答案 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