2013-03-25 4 views
8

मैं एक स्विच प्राथमिकता है और चाहते हैं कि उसे "ऑन" डिफ़ॉल्ट बनाया जा करने के लिए ... एक्सएमएल में ,एंड्रॉइड स्विचप्रिफरेंस मैं स्विच वरीयता डिफ़ॉल्ट मान कैसे सेट कर सकता हूं?

<SwitchPreference 
     android:defaultValue="true" 
     android:key="PromoNotificationOnOff" 
     android:title="@string/Snotification_enable" /> 

और कक्षा में,

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    // Load the preferences from an XML resource 
    addPreferencesFromResource(R.xml.settings); 


} 

यह क्यों काम नहीं कर रहा? क्या चीज़ छूट रही है? धन्यवाद!! टैग बिल्कुल सही है:

उत्तर

9

अपने MainActivity onCreate विधि में इस लाइन

PreferenceManager.setDefaultValues(this, R.xml.settings, false); 

आप http://developer.android.com/reference/android/preference/PreferenceManager.html#setDefaultValues(android.content.Context, पूर्णांक, बूलियन पर इसके बारे में पढ़ सकते हैं)

+3

एक्सएमएल "DefaultValue एंड्रॉयड" जोड़ें। कोड में मूल्य को ओवरराइड करना (इसे ओवरराइड करना) एक अनावश्यक है, और दोनों जगहों पर छोड़ दिए जाने पर बाद में भ्रम पैदा कर सकता है। हालांकि, इस कोड को डीबग करते समय, वरीयता आइटम के लिए "डिफ़ॉल्ट" अक्सर तब तक नहीं लेते जब तक कि एंड्रॉइड सेटिंग्स में एप्लिकेशन डेटा साफ़ नहीं किया जाता है। – gtcompscientist

+0

@gtcompscientist इससे पहले कि आप टिप्पणी करें और वोट दें, आपको संदर्भ लिंक पढ़ना चाहिए। यदि यह बहुत अधिक परेशानी है तो आपको कम से कम सेटडिफॉल्ट वैल्यूज() पर दस्तावेज़ को पढ़ना चाहिए ताकि यह पता चल सके कि पैरामीटर क्या खड़े हैं। जहां समाधान में मैंने प्रदान किया है कि एक्सएमएल में मान सेट किया गया है? मैंने जो समाधान प्रदान किया है वह बिल्कुल सही और स्पष्ट है अगर कोई जानता है कि विधि सेट डीफॉल्टवैल्यूज() है। –

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

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