PreferenceManager getDefaultSharedPreferences
jest przestarzały w systemie Android Q , jak go zastąpić?
android
sharedpreferences
android-10.0
Martynas B
źródło
źródło
implementation
nie jestdependency
?Pakiet
preference
zawieraandroidx
PreferenceManager :Jawa:
implementation "androidx.preference:preference:1.1.1"
Kotlin:
implementation "androidx.preference:preference-ktx:1.1.1"
tj. zmień
android.preference.PreferenceManager
naandroidx.preference.PreferenceManager
Zobacz także PreferenceFragmentCompat , która jest bieżącą
PreferenceFragment
klasą do użycia.źródło
PreferenceFragmentCompat
, który wtedy nie istniał ... jest to zwykle następny problem z wycofywaniem, z którym można się spotkać, próbując zaktualizować preferencje. Druga połączona odpowiedź była ważna tylko przez ograniczony czas.Jeśli tylko zapisujesz i pobierasz pary klucz-wartość, możesz zamienić:
prefs = PreferenceManager.getDefaultSharedPreferences(this);
z:
prefs = getSharedPreferences( "my.app.packagename_preferences", Context.MODE_PRIVATE);
Upewnij się, że używasz prawidłowej nazwy pliku dla nowej implementacji, w przeciwnym razie użytkownicy utracą dostęp do wszystkiego, co zapisano za pomocą getDefaultSharedPreferences (!). Poniższy kod otrzyma nazwę pliku używaną przez getDefaultSharedPreferences:
getPackageName() + "_preferences"
źródło
Cytat z
PreferenceManager
dokumentacji :źródło
Tak, jest przestarzały. Użyj biblioteki preferencji AndroidX, aby zapewnić spójne działanie na wszystkich urządzeniach. Aby uzyskać więcej informacji na temat korzystania z biblioteki preferencji AndroidX, zobacz Ustawienia.
Obserwuj to -
PreferenceManager
źródło
kotlin libray
implementation 'androidx.preference:preference-ktx:1.1.1'
kotlin użyj Configuration.getInstance (). load (this, androidx.preference.PreferenceManager.getDefaultSharedPreferences (this))
źródło