Xamarin AndroidX.Preferences - невозможно преобразовать из «SettingsFragment» в «Android .Support.V4.App.Fragment» - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь обновить экран настроек / предпочтений моего приложения Xamarin Android, в котором использовался класс PreferenceManager. Поскольку я нацелен на Android 10, этот класс устарел, и я хотел бы вместо него использовать библиотеку AndroidX.Preference.

Я следовал руководству Google для создания экрана настроек с 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, чтобы в дальнейшем предотвратить любые проблемы с неподдерживаемым кодом.

Любая помощь приветствуется. Спасибо!

1 Ответ

1 голос
/ 26 мая 2020

Проверить, к какому пакету AppCompatActivity относится?

Если это :

using Android.Support.V7.App;

, измените его на:

using AndroidX.AppCompat.App;
...