带有片段的默认首选项值
Default preferences values with fragments
我有一个包含我的首选项的 xml 文件。在里面我有几个偏好片段。每个首选项片段都关联了其首选项 xml 文件。我要打电话给:
PreferenceManager.setDefaultValues(this, R.xml.settings, false);
每个 xml 文件?文档说只有第一次调用(使用 false 参数)才会写入默认值。我错过了什么吗?如何管理多个分片?
回复自己:
// we cannot call setDefaultValues for multiple fragment based XML preference files with readAgain flag set to false, so always check KEY_HAS_SET_DEFAULT_VALUES
if (!PreferenceManager.getDefaultSharedPreferences(this).getBoolean(PreferenceManager.KEY_HAS_SET_DEFAULT_VALUES, false)) {
PreferenceManager.setDefaultValues(this, R.xml.frag1, true);
PreferenceManager.setDefaultValues(this, R.xml.frag2, true);
.......
PreferenceManager.setDefaultValues(this, R.xml.fragN, true);
}
我有一个包含我的首选项的 xml 文件。在里面我有几个偏好片段。每个首选项片段都关联了其首选项 xml 文件。我要打电话给:
PreferenceManager.setDefaultValues(this, R.xml.settings, false);
每个 xml 文件?文档说只有第一次调用(使用 false 参数)才会写入默认值。我错过了什么吗?如何管理多个分片?
回复自己:
// we cannot call setDefaultValues for multiple fragment based XML preference files with readAgain flag set to false, so always check KEY_HAS_SET_DEFAULT_VALUES
if (!PreferenceManager.getDefaultSharedPreferences(this).getBoolean(PreferenceManager.KEY_HAS_SET_DEFAULT_VALUES, false)) {
PreferenceManager.setDefaultValues(this, R.xml.frag1, true);
PreferenceManager.setDefaultValues(this, R.xml.frag2, true);
.......
PreferenceManager.setDefaultValues(this, R.xml.fragN, true);
}