启动服务时,我需要检查特定设置( boolean 值)。请检查以下代码:
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);
如果( sleep 启用){
//代码
}
即使如此,XML 中的默认值是“false”,我在每次服务启动时都得到“true”。我知道这是因为我将“getBoolean()”方法中的参数设置为“true”,但我需要复选框的实际值..
为什么我在开始服务时总是得到“true”?
p.s 如果我进入“设置”并更改复选框的值就可以了。然后,当再次启动服务时,它会提取实际值。那么如何获取XML中设置的实际DEFAULT值呢?
最佳答案
更改此:
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
关于java - 如何从 XML 获取默认值(不起作用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16373690/