如何从XML获取默认值(不工作)

时间:2013-05-04 11:19:03

标签: java android sharedpreferences

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

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值?

1 个答案:

答案 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