Android首选项:不正确的默认值DESPITE“setDefaultValues”

前端之家收集整理的这篇文章主要介绍了Android首选项:不正确的默认值DESPITE“setDefaultValues”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有类似的问题,如 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中正确的默认值

我真的不明白这样做的逻辑,但现在它完美无缺.对我来说似乎有点像虫子.

猜你在找的Android相关文章