始终设置默认CheckBoxPreference

时间:2014-09-23 18:10:26

标签: android android-preferences

我有一个CheckBoxPreference,我希望默认选中它;但它不起作用。

这是我的代码:

在我的extends Application课程中:

@Override
public void onCreate() {
    super.onCreate();

    PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
    sharedPreferences.getBoolean("notify", true);

}

实际的Pref:

    <CheckBoxPreference
        android:key="notify"
        android:title="Push Notifications"
        android:summary="Receive status bar alerts"/>
    </PreferenceCategory>

2 个答案:

答案 0 :(得分:5)

您需要将默认值添加到xml中。请注意android:defaultValue="true"

机器人:默认值= “真”

<CheckBoxPreference
    android:key="notify"
    android:title="Push Notifications"
    android:summary="Receive status bar alerts"
    android:defaultValue="true"
/>

答案 1 :(得分:0)

我只是想为已接受的答案添加一些非常重要的内容。是的,您所要做的就是按照他们所说的添加默认值,如果您查看评论,其他人提到您需要使用这行代码实际设置默认值 ->

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

您可以将该行代码放在设置活动的 OnCreate 方法中,也可以在首选项片段中调用它。

这才是最重要的!如果您已经至少运行了一次应用程序,您将不会看到默认设置被加载。这是因为为了防止用户设置丢失,默认值只设置一次。

因此,如果您想查看默认设置并确保它们正常工作,请卸载您的应用,然后重新运行。