【问题标题】:Adding Intent Filters to Xamarin Forms / Xamarin Android Errors将意图过滤器添加到 Xamarin 表单/Xamarin Android 错误
【发布时间】:2021-08-30 16:45:52
【问题描述】:

我正在使用 Xamarin Forms 构建一个 Home Launcher 应用,类似于 Niagara Launcher。

根据这篇文章,为了使我的应用实际上表现得像一个启动器应用,我想将所需的意图过滤器添加到我的 android 项目中的 mainactivity.cs:

https://forums.xamarin.com/discussion/21961/creating-an-android-launcher-home-screen-using-xamarin

让它看起来像这样:

    namespace Launcher.Droid
{
    [Activity(Label = "Launcher", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize)]
    [IntentFilter(new[] { Intent.ActionMain }, Categories = new[] { Intent.CategoryHome, Intent.CategoryDefault })]
    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
    {
        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());
        }

        public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
        {
            Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);

            base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
        }
    }
}

对于每个 Intent 过滤器,我都会收到一个错误提示

  • 不能使用实例引用访问静态成员“member”;改为使用类型名称来限定它

  • 不能使用实例引用访问静态成员“member”;改为使用类型名称对其进行限定。

我是 Xamarin 的新手,很高兴能提示/指导我做错了什么。谢谢各位

【问题讨论】:

  • 你有哪些用途?如果您只是为了好玩而将Intent.* 字段替换为字符串会发生什么?它还抱怨吗?

标签: android .net xamarin xamarin.forms xamarin.android


【解决方案1】:

静态成员 'member' 不能被实例引用访问;改为使用类型名称来限定它

由于您的member 是静态的,您应该使用类/类型名称来访问它,而不是实例/变量名称。使用Class.Func 方法。

如果您的表单类名为 ClassA,请执行此操作 ClassA.member

【讨论】:

    【解决方案2】:

    我认为您缺少 using 语句

    using Android.Content;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多