如何在PreferenceActivity中将SharedPreferences设置为默认值?

Gob*_*ber 7 android preferences preferenceactivity sharedpreferences

我已经为PreferenceScreen创建了一个基于xml的PreferenceActivity.在xml中,您可以为不同的首选项指定默认值.但是在打开和关闭屏幕之前,这些不会存储在我的SharedPreferences中.

问题是我想立即使用存储在此屏幕中的首选项(如服务器地址),如果用户想要更改默认值,则只需要打开它.

有没有办法存储偏好屏幕xml中的所有首选项,而不强制用户打开和关闭首选项活动?

我知道你可以在从SharedPreferences中检索Preference时提供默认值,但是必须在xml和code中维护默认值是愚蠢的.

Pen*_*m10 13

只需在Application课堂上使用此代码即可.

PreferenceManager.setDefaultValues(this, R.xml.preference, false);
Run Code Online (Sandbox Code Playgroud)

它将从XML加载您的首选项,最后一个参数(readAgain)将保证不会覆盖用户首选项.您需要在R.xml.preference文件中维护默认参数.

请查看Android API中的PreferenceManager.setDefaultValues以进行进一步调查.