尽管初始化和设置活动,CrossCurrentActivity.Current.Activity仍为NULL

时间:2018-05-25 17:04:21

标签: xamarin.forms xamarin.android

我正在尝试使用Montemagno的CrossCurrentActivity插件来解决Xamarin.Forms.Android项目中的当前活动。但是,CrossCurrentActivity.Current.Activity始终为空。我究竟做错了什么?

protected override void OnCreate(Bundle bundle)
        {
            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource = Resource.Layout.Toolbar;

            base.OnCreate(bundle);

            Microsoft.WindowsAzure.MobileServices.CurrentPlatform.Init();                        
            global::Xamarin.Forms.Forms.Init(this, bundle);    

            CrossCurrentActivity.Current.Init(this, bundle);
            // CrossCurrentActivity.Current.Activity is NULL
            CrossCurrentActivity.Current.Activity = this;
            // CrossCurrentActivity.Current.Activity is still NULL

            var formsApp = new App(new AndroidInitializer());
            _registryContainer = formsApp.Container;    
            LoadApplication(formsApp);
        }

3 个答案:

答案 0 :(得分:2)

不要自己设置CrossCurrentActivity.Current.Activity
<击> CrossCurrentActivity.Current.Activity = this;

根据github project,您可以在CrossCurrentActivity中初始化MainActivity.cs
CrossCurrentActivity.Current.Init(this, bundle);

或者你可以在application level中初始化它。

答案 1 :(得分:0)

有同样的问题,这就是我在OnCreate方法中添加到MainActivity.cs中的内容

CrossCurrentActivity.Current.Init(this, savedInstanceState);
CrossFingerprint.SetCurrentActivityResolver(() => CrossCurrentActivity.Current.Activity);

答案 2 :(得分:0)

在OnCreate方法内的MainActivity.cs上添加以下内容:

Plugin.CurrentActivity.CrossCurrentActivity.Current.Init(this, savedInstanceState);