Android启动活动

本文关键字:活动 启动 Android | 更新日期: 2023-09-27 17:49:35

我正在使用MonoDevelop for Android与MapsAndlocationDemo,我有一个关于启动另一个活动的问题。

下面是我的代码:
    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)

我可以有一些信息,为什么这不起作用,和一些帮助使它工作。

Android启动活动

如果有用的话,你可以使用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();
    }
}

如果你需要的方法可以从任何地方访问,你可以用你的意图代替getFoo方法:)我认为它应该工作。应用参考在这里