我存储我的布尔像这样在我的偏好活动:从共享偏好越来越布尔总是返回false
OnPreferenceChangeListener locaListener = new OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference, Object newValue) {
SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();
if(newValue.toString().trim().equals("true")){
editor.putBoolean("locationEnabled", true);
}else if (newValue.toString().trim().equals("false")){
editor.putBoolean("locationEnabled", false);
}
editor.commit();
return true;
}
};
,并试图找回它像这样在我的主要活动:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
boolean prefLocationEnabled = prefs.getBoolean("locationEnabled", false);
同样的方法与字符串工作完美,但与布尔似乎总是返回默认值是错误的。任何人都知道我做错了什么?
你确定'editor.putBoolean(“locationEnabled”,true);'被调用? 'newValue.toString()。trim()。equals(“true”)'评估为true? – CaseyB
是的,无论在哪种情况下,我都使用System.out对其进行了测试。它存储的价值,但不能检索它 –