c# - 如何在 App.css 页面上检索 MainActivity 发送的消息?
问题描述
在MainActivity.cs我发送以下消息:
resultIntent.PutExtra("message", "string123");
然后在App.css我试图接受如下消息:
Intent.Extras.GetString("message", "");
但我使用的路径是MainActivity.cs ...
解决方案
似乎您想在首次创建App构造函数时将消息从MainActivity传递给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);
}
推荐阅读
- macos - macOS 代码签名并公证 .app 和 .dmg 以进行分发
- nginx - /etc/nginx/sites-enabled/default 错误中 0.0.0.0:80 的重复默认服务器在哪里重复?
- c++ - 用于解析 win64 堆栈跟踪的命令行客户端(可以访问符号服务器)
- amazon-web-services - 我可以在 AWS IAM 上注册具有多个证书的 IDP
- java - 将项目从 Eclipse 移动到 Intellij,现在我收到错误
- java - 银行银行发生异常 = new Bank(bankNaam);
- django - 无法在 Django 2.2 中呈现静态文件
- azure - Azure 托管数据磁盘无法使用 ansible parted 进行分区
- node.js - 如何为 Winston 记录仪着色?
- c# - 在 ASP.NET Core 2.2 中使用异步缩小 js