1

启动服务时,我需要检查特定设置(布尔值)。请检查以下代码:

XML 代码:

 <CheckBoxPreference android:title="Enable Sleep" android:defaultValue="false" android:key="checkbox_preference"/>

Java 代码:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    boolean sleepEnabled = prefs.getBoolean("checkbox_preference", true);

如果(睡眠启用){

// 代码

}

即使如此,XML 中的默认值是“假”,我在每次服务启动时都得到“真”。我知道这是因为我将“getBoolean()”方法中的参数设置为“true”,但我需要复选框的实际值..

为什么我在开始服务时总是“真实”?

ps 如果我转到设置并更改复选框的值,那很好。然后当再次启动服务时,它会提取实际值。那么如何获取 XML 中设置的实际 DEFAULT 值呢?

4

1 回答 1

0

改变这个:

boolean sleepEnabled = prefs.getBoolean("checkbox_preference", true);

对此:

boolean sleepEnabled = prefs.getBoolean("checkbox_preference", false);

并查看文档: http: //developer.android.com/reference/android/preference/Preference.html#attr_android :defaultValue

于 2013-05-04T12:04:42.753 回答