如何在 App.css 页面上检索通过 MainActivity 发送的消息?
How to retrieve the message sent via MainActivity on the App.css page?
在 MainActivity.cs 我发送以下消息:
resultIntent.PutExtra("message", "string123");
然后在 App.css 中,我尝试按以下方式接受消息:
Intent.Extras.GetString("message", "");
但我使用的路径是 MainActivity.cs...
当 App 构造函数首先被创建。您可以通过多种方式实现这一点
选项 1(推荐)
只需给App构造函数一个参数,如下
public App(string message)
{
InitializeComponent();
MainPage = new AppShell(message);
}
您可以在创建时从 MainActivity 进行设置,如下所示
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
LoadApplication(new App("string123"));
}
选项 2
我不喜欢的另一种选择可能是将 MainActivity 的实例传递给 App,如下所示
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
this.Intent.PutExtra("message", "string1234");
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
LoadApplication(new App(this));
}
然后在 App 构造函数中按如下方式使用此实例
Android.App.Activity _mainActivity;
public App(object mainActivity)
{
InitializeComponent();
string message = "Void";
if (Device.RuntimePlatform == Device.Android)
{
_mainActivity = (Android.App.Activity)mainActivity;
message = _mainActivity.Intent.Extras.GetString("message", "");
}
MainPage = new AppShell(message);
}
在 MainActivity.cs 我发送以下消息:
resultIntent.PutExtra("message", "string123");
然后在 App.css 中,我尝试按以下方式接受消息:
Intent.Extras.GetString("message", "");
但我使用的路径是 MainActivity.cs...
当 App 构造函数首先被创建。您可以通过多种方式实现这一点
选项 1(推荐)
只需给App构造函数一个参数,如下
public App(string message)
{
InitializeComponent();
MainPage = new AppShell(message);
}
您可以在创建时从 MainActivity 进行设置,如下所示
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
LoadApplication(new App("string123"));
}
选项 2
我不喜欢的另一种选择可能是将 MainActivity 的实例传递给 App,如下所示
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
this.Intent.PutExtra("message", "string1234");
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
LoadApplication(new App(this));
}
然后在 App 构造函数中按如下方式使用此实例
Android.App.Activity _mainActivity;
public App(object mainActivity)
{
InitializeComponent();
string message = "Void";
if (Device.RuntimePlatform == Device.Android)
{
_mainActivity = (Android.App.Activity)mainActivity;
message = _mainActivity.Intent.Extras.GetString("message", "");
}
MainPage = new AppShell(message);
}