Android switchpreference如何设置开关首选项的默认值?

时间:2013-03-25 03:19:30

标签: android android-preferences

我有一个开关首选项,并希望它默认为“开启”... 在xml中,

<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);


}

为什么不工作?缺什么?谢谢!

2 个答案:

答案 0 :(得分:11)

MainActivity onCreate方法中添加此行

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

您可以在http://developer.android.com/reference/android/preference/PreferenceManager.html#setDefaultValues(android.content.Context,int,boolean)

上阅读

答案 1 :(得分:1)

代码正确无误,只需使用switchPreferenceCompact而不是SwitchPreference

     <SwitchPreferenceCompat
        app:key="promoNofitficationOnOff"
        app:summaryOff="@string/notification_summary_off"
        app:summaryOn="@string/notification_summary_on"
        app:defaultValue="true"
        app:title="@string/promo_notification_title" />