在MainActivity.cs中,我發送了以下訊息:
resultIntent.PutExtra("message"/span>, "string123"/span>)。
然后在App.css中,我試圖接受訊息,如下:
Intent.Extras.GetString("message"/span>, "")。
但是我使用的路徑是針對MainActivity.cs...
uj5u.com熱心網友回復:
看起來你想在第一次創建App建構式時,從MainActivity向App傳遞一條訊息。這可以通過多種方式實作
。選項1(推薦)
簡單地給App建構式一個引數,如下所示。public App(string message)
{
InitializeComponent()。
MainPage = new AppShell(message)。
這一點你可以在創建時從MainActivity中設定,如下所示
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(s 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(s 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"/span>;
if (Device.RuntimePlatform == Device.Android)
{
_mainActivity = (Android.App.Activity)mainActivity;
message = _mainActivity.Intent.Extras.GetString("message", "") 。
}
MainPage = new AppShell(message)。
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/306650.html
標籤:

