有2个xml首选项文件,包含不同的设置..
PreferenceManager.setDefaultValues(file1) //works
PreferenceManager.setDefaultValues(file2) does not work
未加载第二个文件的默认值,我认为这是预期的..
如何为2个不同的文件调用PreferenceManager.setDefaultValues,确保它只执行一次..
答案 0 :(得分:2)
结束以下黑客..
final SharedPreferences defaultValueSp = context.getSharedPreferences(PreferenceManager.KEY_HAS_SET_DEFAULT_VALUES, Context.MODE_PRIVATE);
if(!defaultValueSp.getBoolean(PreferenceManager.KEY_HAS_SET_DEFAULT_VALUES, false))
{
PreferenceManager.setDefaultValues(context, R.xml.file1, false);
//passing true as ignored otherwise because of above call
PreferenceManager.setDefaultValues(context, R.xml.file2, true);
}
答案 1 :(得分:1)
您可以使用Interface Editor修改SharedPreferences对象中的值。 Ex方法:
public static void setPreferredArtistName(Context context, String artistName) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("ArtistName", artistName);
editor.commit();
}
答案 2 :(得分:0)
将第一个false
和第二个true
放在这样:
PreferenceManager.setDefaultValues(context, R.xml.file1, false);
PreferenceManager.setDefaultValues(context, R.xml.file2, true);