2011-06-13 10 views
16

मेरे आवेदन में, मैं कुछ बुनियादी सेटिंग्स के साथ-साथ वरीयता स्क्रीन को सहेजने के लिए साझा किए गए संदर्भों का उपयोग करने का प्रयास कर रहा हूं। मेरी SharedPreferences के लिए नाम appPrefs है और इस तरह मेरी फ़ाइल नाम ... है/appPrefs.xml लेकिन, मेरा एप्लिकेशन स्क्रीन यह defaultSharedPreference फ़ाइल जो com.COMPANY.PACKAGENAME_preferences.xmlक्या मैं प्राथमिकता फ़ाइल नाम बदल सकता हूं?

मैं चाहते हैं क्या है में वरीयताओं का बचाता है करने के लिए मेरी वरीयता स्क्रीन ऐपप्रफ्स फ़ाइल में अपनी वरीयताओं को पढ़/लिखती है। मैंने एपीआई में देखा है और कुछ भी नहीं मिला। क्या मैं दो साझा प्रस्तुति फ़ाइलों का प्रबंधन कर रहा हूं?

उत्तर

6

आप की कोशिश की:

PreferenceManager.setSharedPreferencesName 
+0

मैंने कोशिश की है, लेकिन मुझे यह कहते हुए एक त्रुटि मिल रही है कि समारोह मौजूद नहीं है। इसके अलावा, addPreferencesFromResource में कोई वैरिएबल मैनेजर पास करने के लिए एक चर नहीं है, इसलिए मुझे नहीं पता कि मैं दोनों को एक साथ कैसे बांधूंगा, भले ही मैं फ़ंक्शन को सही तरीके से काम कर सकूं। – user543010

+0

कौन सी त्रुटि? कौन सा "कार्य"? कृपया कोड और स्टैक ट्रेस जोड़ें। – Snicolas

+0

कुछ उदाहरणों को देखने के बाद, मैंने पाया कि इस फ़ंक्शन को getPreferenceManager() से कॉल करके बुलाया जा सकता है, इसलिए मैं ऐसा करने में सक्षम हूं। मैं देखता हूं कि यह डिफ़ॉल्ट के बजाय इस वरीयता नाम का उपयोग करता है या नहीं। – user543010

30

बस कैसे नए PreferenceFragment एपीआई के साथ विभिन्न साझा सेटिंग्स नाम का उपयोग करने के बारे में सवाल का जवाब देने के लिए, आप जब onCreate अधिभावी निम्नलिखित कोड जोड़ने की जरूरत:

public static class PrefsFragment extends PreferenceFragment { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     PreferenceManager manager = getPreferenceManager(); 
     manager.setSharedPreferencesName("YOUR_SETTINGS_NAME"); 

     // Load the preferences from an XML resource 
     addPreferencesFromResource(R.xml.preferences); 
    } 
} 
+2

'वरीयता फ्रेगमेंट कॉम्पेट' का उपयोग करके, मुझे इसे काम करने के लिए 'ऑनक्रेट प्राइमन्स' विधि (बजाय क्रेट में) की सेटिंग्स फ़ाइल नाम को परिभाषित करना पड़ा। – TouchBoarder

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