Xamarin AndroidX.Preferences - 无法从 "SettingsFragment "转换为 "Android.Support.V4.App.Fragment"。

问题描述 投票:0回答:1

我正试图更新我的Xamarin Android应用程序的settingspreferences屏幕,它使用PreferenceManager类。由于我的目标是Android 10,这个类已经废弃,我想使用AndroidX.Preference库代替。

我按照 谷歌指南 用于制作AndroidX的设置界面。以下是我使用的代码

namespace SmartLyrics
{
    [Activity(Label = "Settings", ConfigurationChanges = Android.Content.PM.ConfigChanges.ScreenSize | Android.Content.PM.ConfigChanges.Orientation, ScreenOrientation = Android.Content.PM.ScreenOrientation.Portrait)]
    public class SettingsFragment : PreferenceFragmentCompat
    {
        public override void OnCreatePreferences(Bundle savedInstanceState, string rootKey)
        {
            AddPreferencesFromResource(Resource.Xml.perfs);
        }
    }

    public class SettingsActivity : AppCompatActivity
    {
        protected override async void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.main_settings);

            SupportFragmentManager
                .BeginTransaction()
                .Replace(Resource.Id.settingsContainer, new SettingsFragment()) //<--error here
                .Commit();
        }
    }
}

我得到的错误信息是 Cannot convert from 'SmartLyrics.SettingsFragment' to 'Android.Support.V4.App.Fragment'. 我在网上找了一圈,没有找到关于这个错误的解决方法或任何东西。我真的很想使用AndroidX库,以防止以后出现任何不支持代码的问题。

任何帮助都是感激的。谢谢!我正在尝试更新设置。

c# android xamarin xamarin.android androidx
1个回答
1
投票

检查哪个包 AppCompatActivity 指的是?

如果是:

using Android.Support.V7.App;

改为

using AndroidX.AppCompat.App;
© www.soinside.com 2019 - 2024. All rights reserved.