如何为多个xml首选项设置默认值?

时间:2015-07-03 21:41:43

标签: android xml

有2个xml首选项文件,包含不同的设置..

PreferenceManager.setDefaultValues(file1)  //works
PreferenceManager.setDefaultValues(file2)  does not work

未加载第二个文件的默认值,我认为这是预期的..

如何为2个不同的文件调用PreferenceManager.setDefaultValues,确保它只执行一次..

3 个答案:

答案 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);