पसंद फाइलों में नहीं storead हैं परियोजना की /res/xml/defaults.xml
वे
/data/data/com.your.pkg/default.prefs
की तरह में अपने आवेदन फ़ोल्डर कुछ डिवाइस पर जमा हो जाती है फ़ाइल नाम निर्दिष्ट नहीं करते, जैसा कि आप कुछ करना होगा की कोशिश करो How do I get preferences to work in Android?
SharedPreferences preferences = PreferenceManager
.getDefaultSharedPreferences(context);
: वरीयता फाइलों के साथ समस्याओं, इस ओपी की तरह इस सवाल में था
तो फिर तुम शायद
preferences.getString('weightPref', null);
कई एप्लिकेशन क्वेरी करने के लिए एक विशिष्ट अनुप्रयोग या एक गतिविधि की सेटिंग्स पर उपयोगकर्ता वरीयताओं पर कब्जा करने के लिए एक रास्ता प्रदान कर सकता है होगा। इसका समर्थन करने के लिए, एंड्रॉइड एपीआई का एक सरल सेट प्रदान करता है।
प्राथमिकताएं आम तौर पर नाम मूल्य जोड़े होती हैं। उन्हें किसी एप्लिकेशन में विभिन्न गतिविधियों में "साझा प्राथमिकताएं" के रूप में संग्रहीत किया जा सकता है (वर्तमान में नोट करें कि इसे प्रक्रियाओं में साझा नहीं किया जा सकता है)। या यह ऐसा कुछ हो सकता है जिसे किसी गतिविधि के लिए विशिष्ट रूप से संग्रहीत करने की आवश्यकता हो।
साझा प्राथमिकताएं: साझा प्राथमिकताओं को अनुप्रयोगों से सभी घटकों (गतिविधियों, सेवाओं आदि) द्वारा उपयोग किया जा सकता है।
गतिविधि की प्राथमिकताएं हैंडल: इन प्राथमिकताओं का उपयोग केवल गतिविधि में ही किया जा सकता है और एप्लिकेशन के अन्य घटकों द्वारा इसका उपयोग नहीं किया जा सकता है।
साझा प्राथमिकताएं:
साझा वरीयताओं Context
वर्ग के getSharedPreferences
विधि की मदद से प्रबंधित कर रहे हैं। वरीयताओं को एक डिफ़ॉल्ट फ़ाइल (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 = PreferencesManager.getDefaultSharedPreferences(context);
अंत में फ़ाइल नाम निर्दिष्ट किए बिना, डिफ़ॉल्ट मोड द्वारा उपयोग करने के लिए है, एक बार आप वरीयताओं उदाहरण है, आपके द्वारा संग्रहीत पुनः प्राप्त कर सकते है वरीयताओं से को महत्व देता है:
int storedPreference = preferences.getInt("storedInt", 0);
करने के लिए दुकान वरीयता फ़ाइलमें को महत्व देता हैऑब्जेक्ट का उपयोग किया जाना चाहिए। 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
नामक एक पैकेज भी शामिल है। पैकेज एप्लिकेशन वरीयताओं UI को लागू करने के लिए कक्षाओं को परिभाषित करता है।
कुछ और उदाहरण जाँच डेवलपर्स साइट पर Android के Data Storage पोस्ट देखने के लिए।
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<CheckBoxPreference android:key="gpsOn"
android:summaryOff="GPS is Off"
android:summaryOn="GPS is On"
android:title="GPS State"></CheckBoxPreference>
मैं तुम्हें एक PreferenceActivity
का उपयोग अपने xml से प्राथमिकताएं लोड करने में मान:
कृपया [ "यहाँ" लिंक पाठ के रूप में उपयोग नहीं करते या "यहाँ क्लिक करें"] (http://www.w3.org/QA/Tips/noClickHere.html)। धन्यवाद! –
मैं क्या करना चाहता हूं एक उपयोगकर्ता पक्ष प्राथमिकता xml फ़ाइल को res/xml/preferences.xml में डिफ़ॉल्ट मानों के साथ परिभाषित करने के लिए है, जैसा कि आपने बताया है कि मैं इन प्राथमिकताओं को निम्न के साथ प्राप्त कर सकता हूं: वरीयता प्रबंधक .getDefaultSharedPreferences (संदर्भ); दूसरी ओर मैं अपनी ऐप को कॉन्फ़िगर करने के लिए किसी अन्य फ़ाइल में अन्य प्रकार की वरीयताओं को परिभाषित करना चाहता हूं (उपयोगकर्ता इन कॉन्फ़िगरेशन प्राथमिकताओं को प्रबंधित नहीं कर सकते हैं, केवल मेरे ऐप का कोड उन्हें पढ़ने में सक्षम होगा)। मेरा प्रश्न यह है कि मैं इन कॉन्फ़िगरेशन वरीयताओं के लिए डिफ़ॉल्ट मान कहां निर्दिष्ट कर सकता हूं, यदि मेरे पास पहले से उपयोगकर्ता प्राथमिकताओं (res/xml/preferences.xml) के लिए फ़ाइल है। – whynot
जोआचिम एक अच्छा मुद्दा बनाता है। फिक्स्ड। – MatrixFrog