कई एप्लिकेशन विशिष्ट एप्लिकेशन या किसी गतिविधि की सेटिंग्स पर उपयोगकर्ता की प्राथमिकताओं को पकड़ने का एक तरीका प्रदान कर सकते हैं। इसका समर्थन करने के लिए, Android एपीआई का एक सरल सेट प्रदान करता है।
प्राथमिकताएं आमतौर पर नाम जोड़े हैं। उन्हें एक आवेदन में विभिन्न गतिविधियों में "साझा प्राथमिकताएं" के रूप में संग्रहीत किया जा सकता है (ध्यान दें कि वर्तमान में इसे प्रक्रियाओं में साझा नहीं किया जा सकता है)। या यह कुछ ऐसा हो सकता है जिसे किसी गतिविधि के लिए विशिष्ट रूप से संग्रहीत किया जाना चाहिए।
साझा प्राथमिकताएँ: साझा प्राथमिकताओं का उपयोग सभी घटकों (गतिविधियों, सेवाओं आदि) द्वारा किया जा सकता है।
गतिविधि ने प्राथमिकताएँ संभाला: इन प्राथमिकताओं का उपयोग केवल गतिविधि में किया जा सकता है और इसका उपयोग अनुप्रयोग के अन्य घटकों द्वारा नहीं किया जा सकता है।
साझा प्राथमिकताएँ:
साझा वरीयताओं को कक्षा की getSharedPreferencesविधि की सहायता से प्रबंधित किया जाता है Context। प्राथमिकताओं को एक डिफ़ॉल्ट फ़ाइल (1) में संग्रहीत किया जाता है या आप वरीयताओं को संदर्भित करने के लिए उपयोग किए जाने वाले फ़ाइल नाम (2) को निर्दिष्ट कर सकते हैं।
(1) फ़ाइल का नाम निर्दिष्ट करने पर आपको इस तरह का उदाहरण मिलता है
public static final String PREF_FILE_NAME = "PrefFile";
SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);
MODE_PRIVATEवरीयताओं के लिए ऑपरेटिंग मोड है। यह डिफ़ॉल्ट मोड है और इसका मतलब है कि बनाई गई फ़ाइल केवल कॉलिंग एप्लिकेशन द्वारा एक्सेस की जाएगी। अन्य दो समर्थित मोड हैं MODE_WORLD_READABLEऔर MODE_WORLD_WRITEABLE। में MODE_WORLD_READABLEअन्य अनुप्रयोग बनाई गई फ़ाइल को पढ़ सकता है, लेकिन यह नहीं बदल सकते। MODE_WORLD_WRITEABLEअन्य अनुप्रयोगों के मामले में भी बनाई गई फ़ाइल के लिए लिखने की अनुमति है।
(2) अनुशंसित तरीका फ़ाइल नाम निर्दिष्ट किए बिना, डिफ़ॉल्ट मोड द्वारा उपयोग करना है
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
अंत में, जब आपके पास वरीयताएँ होती हैं, तो यहां बताया गया है कि आप वरीयताओं से संग्रहीत मूल्यों को कैसे प्राप्त कर सकते हैं:
int storedPreference = preferences.getInt("storedInt", 0);
वरीयता फ़ाइल ऑब्जेक्ट में मूल्यों को संग्रहीतSharedPreference.Editor करने के लिए उपयोग किया जाना है। वर्ग Editorका नेस्टेड इंटरफ़ेस है SharedPreference।
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
संपादक भी तरह के तरीकों का समर्थन remove()और clear()फ़ाइल से वरीयता मूल्य नष्ट करने के लिए।
गतिविधि प्राथमिकताएं:
साझा प्राथमिकताओं का उपयोग अन्य एप्लिकेशन घटकों द्वारा किया जा सकता है। लेकिन अगर आपको अन्य घटकों के साथ वरीयताओं को साझा करने की आवश्यकता नहीं है और गतिविधियों को निजी प्राथमिकता देना चाहते हैं। आप getPreferences()गतिविधि की विधि की मदद से ऐसा कर सकते हैं । getPreferenceविधि का उपयोग करता getSharedPreferences()फ़ाइल प्राथमिकता नाम के लिए गतिविधि वर्ग के नाम के साथ विधि।
वरीयताएँ प्राप्त करने के लिए कोड निम्नलिखित है
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
int storedPreference = preferences.getInt("storedInt", 0);
मूल्यों को संग्रहीत करने का कोड भी समान है क्योंकि साझा वरीयताओं के मामले में।
SharedPreferences preferences = getPreference(MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
आप डेटाबेस में गतिविधि स्थिति को संग्रहीत करने जैसी अन्य विधियों का भी उपयोग कर सकते हैं। नोट एंड्रॉइड में एक पैकेज भी होता है जिसे कहा जाता है android.preference। पैकेज अनुप्रयोग प्राथमिकताएँ यूआई को लागू करने के लिए कक्षाओं को परिभाषित करता है।
कुछ और उदाहरण देखने के लिए डेवलपर्स साइट पर एंड्रॉइड के डेटा स्टोरेज पोस्ट की जांच करें ।