2013-03-25 113 views
8

我有一個開關的偏好,並希望它被默認爲「ON」 ...... 在XML,Android switchpreference如何設置開關首選項默認值?

<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

的XML 「機器人:默認值」 標籤是絕對正確的。在代碼中更新值(覆蓋它)是多餘的,如果兩者都留在原地,可能會導致混淆。 但是,在調試此代碼時,首選項的「默認值」通常不會執行,直到Android設置中的應用程序數據被清除。 – gtcompscientist 2014-03-21 11:50:40

+0

@gtcompscientist在您評論和投票之前,您應該閱讀參考鏈接。如果這太麻煩了,那麼你至少應該閱讀setDefaultValues()的文檔來知道參數代表什麼。在我提供的解決方案中更新xml中設置的值的位置?如果知道方法setDefaultValues()是什麼,我提供的解決方案是絕對正確和清晰的。 – 2014-03-21 19:14:45