[英]getBoolean returning false
我正在编写一个需要检查默认首选项设置并做出相应响应的程序。 即使 R.xml.preferences 将 defaultValues 设置为 true,getBoolean 方法也始终返回 false。 我已经测试过preferences.contains(prefKey)
并且返回true。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fullscreen);
PreferenceManager.setDefaultValues(this, R.xml.preferences, true);
populate();
}
public void populate() {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
try {
for (int x = 0; x < 9; x++) {
if (preferences.getBoolean(prefKey, false)){
for (int max = 0; max < 20; max++) {
System.out.println("this ran"+ max + "times at" + i);
}
} else {
for (int max = 0; max < 20; max++) {
System.out.println("this Skipped"+ max + "times at" + i);
}
}
}
} catch (IOException ioe) {
}
}
正是因为这个
if (preferences.getBoolean(prefKey, false))//your default value here is false
改成
if (preferences.getBoolean(prefKey, true))
在设置默认值之前,尝试清除您的首选项(在 onCreate 中):
PreferenceManager.getDefaultSharedPreferences(this).edit().clear().commit();
PreferenceManager.setDefaultValues(this, R.xml.preferences, true);
从PreferenceManager.setDefaultValues()文档:
注意:这不会将首选项重置为其默认值。 对于该功能,请使用 getDefaultSharedPreferences(Context) 并清除它,然后调用此方法并将此参数设置为 true。
也许您之前调用过setDefaultValues
将prefKey设置为 false。 根据PreferenceManager 文档
注意:这不会将首选项重置为其默认值。 对于该功能,请使用 getDefaultSharedPreferences(Context) 并清除它,然后调用此方法并将此参数设置为 true。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.