एंड्रॉइड Q में वरीयता प्राप्त getManefD


जवाबों:


212

आप AndroidX समर्थन लाइब्रेरी संस्करण का उपयोग कर सकते हैं PreferenceManager, अर्थात androidx.preference.PreferenceManagerऔर नहींandroid.preference.PreferenceManager

अपने build.gradle में निम्नलिखित को जोड़ना याद रखें।

implementation 'androidx.preference:preference:1.1.1'

50
आप निर्भरता जोड़ना भूल गए हैं: कार्यान्वयन "androidx.preference: वरीयता: 1.1.0"
अभिनव सक्सेना

1
@AbhinavSaxena हां बिल्कुल। समर्थन पुस्तकालय का उपयोग करते समय इसका तात्पर्य है। इस उत्तर को पहले संपादित करने से कोटलिन-केवल केटीएक्स चित्रण जोड़ा गया; मैंने उस संपादन को वापस ले लिया क्योंकि यह केवल कोटलिन था।
लालाटो

ऐसा लगता है कि implementationनहीं होना चाहिए dependency?
रिचर्ड बैराक्लो

ऐसा नहीं है जो या तो काम करता है: ': app @ debugAndroidTest / compileClasspath' के लिए निर्भरता को हल करने में असमर्थ: कार्यान्वयन को नहीं ढूँढ सका "androidx.preference: वरीयता: 1.1.0।
रिचर्ड बैराक्लो

मैं उत्सुक हूँ; उन्होंने उस इंटरफ़ेस को क्यों चित्रित किया, और साझा वरीयताओं को प्राप्त करने का कुछ और तरीका था, या इरादे को एंड्रॉइड पर स्विच करना था?
एडवर्ड फॉक

154

पैकेज प्राथमिकताpreference प्रदान करता है :androidx

जावा: 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, जो तब वापस मौजूद नहीं था ... यह आमतौर पर तब होता है जब किसी को आगे बढ़ने की समस्या का सामना करना पड़ सकता है। अन्य जुड़ा हुआ उत्तर सीमित समय के लिए ही मान्य था।
मार्टिन ज़ेइटलर

क्या हम एपीआई 29 से पहले एपीआई में उपयोग कर सकते हैं?
एच। करत्तनोव

3

यदि आप कुंजी-मूल्य वाले जोड़े सहेज रहे हैं और प्राप्त कर रहे हैं, तो आप उन्हें बदल सकते हैं:

 prefs = PreferenceManager.getDefaultSharedPreferences(this); 

साथ में:

 prefs = getSharedPreferences(
            "my.app.packagename_preferences", Context.MODE_PRIVATE);

नए कार्यान्वयन के लिए सही फ़ाइल नाम का उपयोग करना सुनिश्चित करें या आपके उपयोगकर्ता getDefaultSaredreferences (!) के साथ सहेजी गई हर चीज तक पहुंच खो देंगे। निम्नलिखित फ़ाइल का नाम getDefaultSaredPreferences का उपयोग करेगा:

getPackageName() + "_preferences"

2

PreferenceManager प्रलेखन से उद्धरण :

यह वर्ग एपीआई स्तर 29 में पदावनत कर दिया गया था । सभी उपकरणों के अनुरूप व्यवहार के लिए
AndroidX प्राथमिकता लाइब्रेरी का उपयोग करें । AndroidX प्राथमिकता लाइब्रेरी का उपयोग करने के बारे में अधिक जानकारी के लिए सेटिंग्स देखें ।


19
मूल एक के बारे में क्या संगत नहीं था?
एंड्रॉइड डेवलपर

1

हां, यह पदावनत है। सभी उपकरणों पर लगातार व्यवहार के लिए AndroidX प्राथमिकता लाइब्रेरी का उपयोग करें। AndroidX प्राथमिकता लाइब्रेरी का उपयोग करने के बारे में अधिक जानकारी के लिए सेटिंग्स देखें।

इसका पीछा करो -

PreferenceManager

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.