2012-09-14 14 views
12
  1. मैं पिछली गतिविधि से सहेजी गई साझा प्राथमिकताओं को कैसे पुनर्प्राप्त करूं?
  2. क्या मुझे फ़ाइल लेखन या कुछ अन्य मेनिफेस्ट संशोधनों को सक्षम करने की आवश्यकता है?

उत्तर

33

आपको इसे प्राप्त करने के लिए किसी भी विशेष मेनिफेस्ट modificaiton की आवश्यकता नहीं है।

मान लीजिए कि आप पहले से ही वरीयताओं को सहेज चुके हैं, आप किसी भी समय कुछ वरीयताओं को पढ़ सकते हैं जैसे मैं दिखाता हूं।

  1. साझा प्राथमिकताएं पर लिखें दायर:

    SharedPreferences prefs = getSharedPreferences("your_file_name", MODE_PRIVATE); 
        SharedPreferences.Editor editor = prefs.edit(); 
        editor.putString("yourStringName", "this_is_the_saved_value"); 
        editor.commit(); // This line is IMPORTANT. If you miss this one its not gonna work! 
    
  2. साझा प्राथमिकताएं फ़ाइल से पढ़ें:

    SharedPreferences prefs = getSharedPreferences("your_file_name", 
        MODE_PRIVATE); String string = prefs.getString("yourStringName", 
        "default_value_here_if_string_is_missing"); 
    

आप अपनी वरीयताओं को सहेजने/पढ़ने के लिए एक डिफ़ॉल्ट फ़ाइल का उपयोग कर सकते हैं। बस दो कोड स्निपेट की पहली पंक्ति को प्रतिस्थापित करें जैसे: SharedPreferences prefs = getDefaultSharedPreferences(getApplicationContext());

यह है! इस मामले में एंड्रॉइड डेवलपर्स समर्पित पृष्ठ देखें, here

आशा है कि यह उपयोगी था। मुझे इसके बारे में बताएं।

+0

इससे मुझे थोड़ी मदद मिली, धन्यवाद – kabuto178

6

आपको यह सुनिश्चित करने के अलावा कुछ भी विशेष करने की आवश्यकता नहीं है, दोनों गतिविधियां एक ही फ़ाइल से लिखने/पढ़ने के लिए लिख रही हैं। हुड के तहत, वरीयताओं को सिर्फ एक एक्सएमएल फ़ाइल के रूप में संग्रहीत किया जाता है।

तो, आपके विकल्प हैं:

1) दोनों गतिविधियों से PreferenceManager.getDefaultSharedPreferences() का प्रयोग करें डिफ़ॉल्ट फ़ाइल को लिखने के लिए।

2) Context.getSharedPreferences() का उपयोग करें एक कस्टम फ़ाइल नाम निर्दिष्ट करें, और दोनों गतिविधियों से एक ही नाम का उपयोग करें।

+0

मेरे लिए इसे साफ़ करने के लिए धन्यवाद, इरादों और वरीयताओं को भेजने के बीच भी, जो कि छोटे तारों को स्टोर करने वाले चर के आसपास बेहतर ढंग से उपयोग करने के लिए उपयोग किया जाता है? – kabuto178

+2

यह इस बात पर निर्भर करता है कि आप कितने चर पास करना चाहते हैं, और यदि आप उन्हें स्थायी रखना चाहते हैं। यदि आपके पास पास करने के लिए 20 से अधिक स्थायी चर हैं, तो मैं एक स्क्लाइट डेटाबेस पर विचार करूंगा। यदि आप गतिविधियों के बीच कुछ चर के आसपास गुजर रहे हैं, तो इरादों का उपयोग करना बेहतर विकल्प है यदि आप ध्यान नहीं देते कि एप्लिकेशन से बाहर निकलने के बाद वेरिएबल साफ़ हो जाते हैं। –

1

साझा प्राथमिकताएं सिर्फ साझा की गई हैं। जब तक आप editor.commit() को कॉल करके उन्हें संपादित करने के बाद वरीयताओं को सही ढंग से सहेजते हैं, वे भविष्य में उपलब्ध होंगे।

संबंधित मुद्दे