PreferenceManager.setDefaultValues ​​не работает для пользовательских настроек - PullRequest
0 голосов
/ 28 февраля 2019

Я работаю над небольшим приложением с множеством изменяемых предпочтений, большинство из которых SeekBarPreferences.

Бывает, что, поскольку я совсем не доволен Android по умолчанию SeekBarPreferences,Я использую очень хорошую библиотеку MaterialSeekBarPreference , которая, к сожалению, не обновлялась в течение 2 лет.

Вот пример кода, используемого этой библиотекой:

<com.pavelsikun.seekbarpreference.SeekBarPreference
    android:key="@string/param_maxEvent"
    android:title="Blahlblahblahblahblah"
    android:summary="Blahlblahblahblahblah too"
    android:defaultValue="2"
    custom:msbp_minValue="0"
    custom:msbp_maxValue="5"
    custom:msbp_measurementUnit="events"
    custom:msbp_interval="1"
    custom:msbp_dialogEnabled="false"/>

Как видите, вы можете использовать атрибут android:defaultValue xml, и он отлично работает с пользовательским интерфейсом.

Поскольку мне нужно загрузить все эти значения по умолчанию при инициализации приложения, я использую метод PreferenceManager.setDefaultValues:

public class App extends Application {
    @Override public void onCreate() {
        super.onCreate();
        PreferenceManager.setDefaultValues(this, R.xml.preferences, true);
    }
}

Это прекрасно работает со всеми настройками по умолчанию (SwitchPreference, ListPreference, Preference), но, к сожалению, не с этими пользовательскими SeekBarPreference.

Загрузка настроекактивность не устанавливает эти значения по умолчанию.

Есть ли обходной путь для этой проблемы?Иначе, если я собирался редактировать библиотеку, что я должен изменить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...