为了使用描述首选项的XML文件中的默认值初始化首选项,我可以调用PreferenceManager.setDefaultValues(this,R.xml.preference,false).听起来很简单,但我不太确定我应该在什么时候调用它?据我从文档中了解到,在尚未设置首选项的情况下,上述调用只需要一次。作为此调用的结果,驻留在/data/data//shared_prefs中的首选项将被设置,因此所有后续读取首选项的尝试都将获得默认值。从逻辑上讲,setDefaultValues应该在每个可能在没有初始化首选项的情况下执行的代码路径中调用。随着时间的推移,这变成了多个地方-主要Ac
我有类似的问题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(da
我正在使用PreferenceManager.setDefaultValues(context,R.xml.preferences,false)在我的应用程序中设置首选项的默认值,我注意到如果我添加一个新的preference然后我的PreferenceFragment不显示它的默认值,即使它是在preferences.xml..中设置的这是因为我将readAgain指定为false吗?我知道我可以简单地试试看,但我只是想确保readAgain是为了这个目的,即重新读取默认值而不是重新设置用户设置,而是设置新属性的默认值。如果这正是readAgain标志的目的,那么您能否给我一个不总是
我正在构建一个Android应用程序,我将首选项存储在从Web加载的类中(我们将首选项与网站同步)但是使用PreferenceScreen,当使用正确的API时它们似乎被忽略了。在XML中,我关闭了持久性,并且在Java中我确保像这样p.setPersistent(false);然后我设置默认值p.setDefaultValue(boolean);我只使用EditTextPreferences和CheckBoxPreferences,但它们都不起作用。我试过在编辑器中设置它,但它似乎不起作用。谢谢,乔 最佳答案 终于成功了。感谢谷歌