启动服务时,我需要检查特定设置(布尔值)。请检查以下代码:
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);
if(sleepEnabled){
//代码
}
即便如此,XML中的默认值为“false”,每次启动服务时都会显示“true”。我知道这是因为我将“getBoolean()”方法中的参数设置为“true”,但我需要复选框的实际值..
为什么我在启动服务时总是“真实”?
p.s如果我转到“设置”并更改复选框的值就可以了。然后当再次启动服务时,它会拉出实际值。那么如何在XML中设置实际的DEFAULT值?
答案 0 :(得分: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