PreferenceManager getDefaultSharedPreferencesเลิกใช้แล้วในAndroid Qฉันจะเปลี่ยนได้อย่างไร
PreferenceManager getDefaultSharedPreferencesเลิกใช้แล้วในAndroid Qฉันจะเปลี่ยนได้อย่างไร
คำตอบ:
คุณสามารถใช้ AndroidX รุ่นสนับสนุนห้องสมุดPreferenceManagerคือไม่androidx.preference.PreferenceManagerandroid.preference.PreferenceManager
อย่าลืมเพิ่มสิ่งต่อไปนี้ใน build.gradle ของคุณ
implementation 'androidx.preference:preference:1.1.1'
implementationไม่ใช่dependency?
แพ็คเกจpreferenceให้androidx PreferenceManager :
Java: implementation "androidx.preference:preference:1.1.1"
Kotlin: implementation "androidx.preference:preference-ktx:1.1.1"
เช่นเปลี่ยนandroid.preference.PreferenceManagerเป็นandroidx.preference.PreferenceManager
ดูPreferenceFragmentCompatซึ่งเป็นPreferenceFragmentคลาสปัจจุบันที่จะใช้
PreferenceFragmentCompatซึ่งไม่มีอยู่ในตอนนั้น ... โดยปกติแล้วปัญหาการเลิกใช้งานถัดไปที่อาจเกิดขึ้นเมื่อพยายามอัปเดตการตั้งค่า คำตอบที่เชื่อมโยงอื่น ๆ ใช้ได้ในระยะเวลา จำกัด เท่านั้น
หากคุณเพียงแค่บันทึกและดึงข้อมูลคู่คีย์ - ค่าคุณสามารถแทนที่ได้:
prefs = PreferenceManager.getDefaultSharedPreferences(this);
กับ:
prefs = getSharedPreferences(
"my.app.packagename_preferences", Context.MODE_PRIVATE);
อย่าลืมใช้ชื่อไฟล์ที่ถูกต้องสำหรับการใช้งานใหม่มิฉะนั้นผู้ใช้ของคุณจะสูญเสียการเข้าถึงทุกสิ่งที่บันทึกด้วย getDefaultSharedPreferences (!) ต่อไปนี้จะได้รับชื่อไฟล์ getDefaultSharedPreferences ใช้:
getPackageName() + "_preferences"
อ้างจากPreferenceManager เอกสาร :
คลาสนี้เลิกใช้แล้วใน API ระดับ 29
ใช้ AndroidX Preference Libraryสำหรับพฤติกรรมที่สอดคล้องกันในทุกอุปกรณ์ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้การตั้งค่า AndroidX ห้องสมุดดูการตั้งค่า
ใช่มันเลิกใช้งานแล้ว ใช้ AndroidX Preference Library สำหรับพฤติกรรมที่สอดคล้องกันในทุกอุปกรณ์ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ AndroidX Preference Library โปรดดูการตั้งค่า
ทำตามนี้ -
kotlin libray
implementation 'androidx.preference:preference-ktx:1.1.1'
kotlin ใช้ Configuration.getInstance () โหลด (สิ่งนี้ androidx.preference.PreferenceManager.getDefaultSharedPreferences (นี้))