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