我有一个类似this的类似问题,所以我根据提出的解决方案进行了处理,并将此行代码添加到onCreate中:PreferenceManager.setDefaultValues(this, R.xml.settings, false);
不幸的是,问题仍然存在,如果用户未更改设置,仍然是默认值(true)mPreferences.getBoolean(String.valueOf(day_of_week), true)
使用而不是XML中的默认值。
有人建议将getBoolean()的默认值参数更改为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中正确的默认值
我真的不了解执行此操作的逻辑,但是现在它可以完美运行了。在我看来有点像个 bug 。