我已经为PreferenceScreen创建了一个基于xml的PreferenceActivity.在xml中,您可以为不同的首选项指定默认值.但是在打开和关闭屏幕之前,这些不存储在我的SharedPreferences中.
问题是我想立即使用存储在此屏幕中的首选项(如服务器地址),如果用户想要更改默认值,则只需要打开它.
有没有办法存储偏好屏幕xml中的所有首选项,而不强制用户打开和关闭首选项活动?
我知道你可以在从SharedPreferences中检索Preference时提供默认值,但是在xml和code中都必须保持默认值是愚蠢的.
解决方法
只需在Application类中使用此代码即可.
PreferenceManager.setDefaultValues(this,R.xml.preference,false);
它将从XML加载您的首选项,最后一个参数(readAgain)将保证不会覆盖用户首选项.您需要在R.xml.preference文件中维护默认参数.
请查看Android API中的PreferenceManager.setDefaultValues以进行进一步调查.