我有类似的问题,如
this,所以我按照建议的解决方案继续进行,并将这行代码添加到onCreate:
PreferenceManager.setDefaultValues(this,R.xml.settings,false);
不幸的是,问题仍然存在,如果用户没有更改设置,仍然是默认值(true)
mPreferences.getBoolean(String.valueOf(day_of_week),true)
用来代替XML中的默认值.
有人建议将getBoolean()的default-value参数更改为null,但此代码会崩溃应用程序:
mPreferences.getBoolean(String.valueOf(day_of_week),(Boolean) null)
有什么建议?提前致谢!
解决方法
最后它有效!我真的花了很多时间和精力来寻找错误,一旦我在这里发布,我就会一个人找到它~~谢谢你们帮我解决这个问题.
如果有任何人有这个问题,解决方案是这样的:将getBoolean()的默认值从true更改为false,如下所示:
mPreferences.getBoolean(String.valueOf(day_of_week),true) – >无法工作,无论XML中发生了什么,它总是如此
mPreferences.getBoolean(String.valueOf(day_of_week),false) – >有用!它是XML中正确的默认值
我真的不明白这样做的逻辑,但现在它完美无缺.对我来说似乎有点像虫子.