我正在尝试使用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);
}
答案 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);