अगर आपके पास मुख्य वैल्यू का ऐसा छोटा कलेक्शन है जिसे आपको सेव करना है, तो
SharedPreferences एपीआई का इस्तेमाल किया जा सकता है. SharedPreferences ऑब्जेक्ट
एक ऐसी फ़ाइल पर ले जाता है जिसमें की-वैल्यू पेयर मौजूद होता है. साथ ही, इसमें पढ़ने के आसान तरीके बताता है
और उन्हें लिखें. हर SharedPreferences फ़ाइल को फ़्रेमवर्क से मैनेज किया जाता है और
निजी या शेयर किया जा सकता है.
इस पेज में बताया गया है कि डेटा को सेव करने के लिए, SharedPreferences API का इस्तेमाल कैसे करें
सरल मान प्राप्त करें.
शेयर की गई प्राथमिकताओं के लिए हैंडल पाएं
शेयर की गई अपनी प्राथमिकता वाली नई फ़ाइल बनाई जा सकती है या कॉल करके किसी मौजूदा फ़ाइल को ऐक्सेस किया जा सकता है इनमें से कोई एक तरीका अपनाएं:
getSharedPreferences(): अगर आपको एक से ज़्यादा ऐसेट शेयर करनी हैं, तो इसका इस्तेमाल करें प्राथमिकता वाली फ़ाइलें, आपके नाम से पहचानी जाती हैं, जिन्हें आप पहले पैरामीटर. आप इसे अपने ऐप्लिकेशन में किसी भीContextसे कॉल कर सकते हैं.getPreferences(): अगर आपको ज़रूरत हो, तोActivityसे इसका इस्तेमाल करें गतिविधि के लिए केवल एक शेयर प्राथमिकता फ़ाइल का उपयोग करने के लिए. क्योंकि इस गतिविधि से संबंधित एक डिफ़ॉल्ट शेयर की गई प्राथमिकता वाली फ़ाइल को हासिल करता है, तो नाम देने की ज़रूरत नहीं है.
उदाहरण के लिए, निम्न कोड साझा प्राथमिकताओं वाली फ़ाइल तक पहुंचता है
रिसॉर्स स्ट्रिंग R.string.preference_file_key से पहचाना जाता है और उसे खोला जाता है
निजी मोड का इस्तेमाल करके, ताकि फ़ाइल को सिर्फ़ आपका ऐप्लिकेशन ऐक्सेस कर सके:
Kotlin
val sharedPref = activity?.getSharedPreferences( getString(R.string.preference_file_key), Context.MODE_PRIVATE)
Java
Context context = getActivity(); SharedPreferences sharedPref = context.getSharedPreferences( getString(R.string.preference_file_key), Context.MODE_PRIVATE);
शेयर की गई अपनी प्राथमिकता वाली फ़ाइलों का नाम रखते समय, आपको ऐसे नाम का इस्तेमाल करना चाहिए जो यूनीक हो
पहचानने योग्य होता है. ऐसा करने का एक अच्छा तरीका यह है कि फ़ाइल के नाम की शुरुआत में
आपका ऐप्लिकेशन आईडी. जैसे:
"com.example.myapp.PREFERENCE_FILE_KEY" अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
इसके अलावा, अगर आपको गतिविधि के लिए, शेयर की गई सिर्फ़ एक फ़ाइल की ज़रूरत है, तो
तो getPreferences() का इस्तेमाल किया जा सकता है:
Kotlin
val sharedPref = activity?.getPreferences(Context.MODE_PRIVATE)
Java
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
अगर ऐप्लिकेशन की सेटिंग सेव करने के लिए SharedPreferences एपीआई का इस्तेमाल किया जा रहा है, तो
के बजाय getDefaultSharedPreferences() का इस्तेमाल करना चाहिए,
शेयर की गई प्राथमिकता वाली फ़ाइल अपलोड करें. ज़्यादा जानकारी के लिए, देखें
सेटिंग डेवलपर गाइड.
शेयर की गई प्राथमिकताओं में लिखें
शेयर की गई प्राथमिकताओं वाली फ़ाइल में लिखने के लिए, SharedPreferences.Editor बनाएं
अपने SharedPreferences पर edit() कॉल करके.
उन कुंजियों और वैल्यू को पास करें जिन्हें आपको इन तरीकों से लिखना है:
putInt() औरputString(). इसके बाद, apply() पर कॉल करें या
बदलावों को सेव करने के लिए, commit() पर क्लिक करें. उदाहरण के लिए:
Kotlin
val sharedPref = activity?.getPreferences(Context.MODE_PRIVATE) ?: return with (sharedPref.edit()) { putInt(getString(R.string.saved_high_score_key), newHighScore) apply() }
Java
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPref.edit(); editor.putInt(getString(R.string.saved_high_score_key), newHighScore); editor.apply();
apply(), मेमोरी में मौजूद SharedPreferences ऑब्जेक्ट को तुरंत बदल देता है, लेकिन
एसिंक्रोनस तरीके से डिस्क पर अपडेट लिखता है. इसके अलावा, commit() का भी इस्तेमाल किया जा सकता है
का इस्तेमाल किया जा सकता है. हालाँकि, commit() सिंक्रोनस है, इसलिए
आपको इसे अपने मुख्य थ्रेड से कॉल करने से बचना चाहिए, क्योंकि यह आपके यूज़र इंटरफ़ेस (यूआई) को रोक सकता है
रेंडरिंग.
शेयर की गई प्राथमिकताओं से पढ़ें
शेयर की गई प्राथमिकता वाली फ़ाइल से वैल्यू वापस पाने के लिए, कॉल करने के तरीके जैसे
getInt() और getString(), आपकी वैल्यू के लिए कुंजी देते हैं
और वैकल्पिक रूप से, कुंजी के मौजूद न होने पर वापस जाने वाला डिफ़ॉल्ट मान. इसके लिए
उदाहरण:
Kotlin
val sharedPref = activity?.getPreferences(Context.MODE_PRIVATE) ?: return val defaultValue = resources.getInteger(R.integer.saved_high_score_default_key) val highScore = sharedPref.getInt(getString(R.string.saved_high_score_key), defaultValue)
Java
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); int defaultValue = getResources().getInteger(R.integer.saved_high_score_default_key); int highScore = sharedPref.getInt(getString(R.string.saved_high_score_key), defaultValue);