我正在使用PreferenceManager.setDefaultValues(context,R.xml.preferences,false)
在我的应用程序中设置首选项的默认值,我注意到如果我添加新的首选项,那么我的PreferenceFragment
不会显示默认值,即使它是在 preferences.xml ..
这是因为我将 readAgain 指定为false吗?
我知道我可以简单地试一试,但我只是想确保 readAgain 就是为了这个目的,即重新读取默认值而不是重新设置用户设置,但设置新属性的默认值。如果这正是 readAgain 标志的目的,那么你可以给我一个不总是将 readAgain 设置为true的理由,因为它不会重置用户首选项吗? / p>
答案 0 :(得分:6)
将readagain
标志设置为true将确保再次设置所有未设置的默认值。这是摘要。
设置readagain
会产生额外的开销,因为基本上它意味着,代码将再次通过整个SharedPreference
来检查它们。如果readAgain
为false,则只需检查是否存在用作设置默认值的标记的文件( has_set_default_values.xml )。
在任何情况下,它都不会设置任何已设置的值。