我有很多首选项,我想重置回我的首选项xml文件中指定的默认值。
我不想重置我的所有偏好 - 只需选择几个。
我试过了:
key=getResources().getString(R.string.myPref);
sharedPreferences.edit().remove(key).commit();
这清除了偏好。但是,当我的程序尝试选择首选项时
String myPref = sharedPreferences.getString(key, "");
它只返回空字符串。
如何从XML文件中获取值?
由于
添加我一直在调试的更完整的代码示例:
//Get preferences
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(activity);
//Get preference key
key=getResources().getString(R.string.myPref);
//Get preference value
String myPref = sharedPreferences.getString(key, ""); // Returns a value that has been entered by a user
//Clear preference
sharedPreferences.edit().remove(key).commit();
//Reset preferences to default values - without overwritting all
PreferenceManager.setDefaultValues(currentContext, preferences, false);
//Get preference value again
String myPref = sharedPreferences.getString(key, ""); // Returns an empty string
答案 0 :(得分:2)
试试PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
这是保存,因为最后一个参数确保用户更改的条目不会被覆盖。
答案 1 :(得分:1)
getDefaultSharedPreferences(Context).setDefaultValues(this,R.xml.preference,true);
请务必将最后一个参数 readAgain 设置为 true 。
这将强制重新读取默认值。如果为false,则此方法仅在以前从未调用过此方法时(或者如果默认值共享首选项文件中的KEY_HAS_SET_DEFAULT_VALUES为false),则设置默认值。要尝试再次绕过此检查设置默认值,请将readAgain设置为true。