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

7
我已经基于PreferenceScreen的xml创建了一个PreferenceActivity。在xml中,您可以为不同的首选项分配默认值。但是在打开和关闭屏幕之前,这些默认值并未存储在我的SharedPreferences中。
问题在于,我希望立即使用存储在此屏幕中的首选项(例如服务器地址),用户只需要在需要更改默认值时打开它。
有没有一种方法可以存储来自preferencescreen xml的所有首选项,而无需强制用户打开和关闭首选项活动?
我知道您可以在从SharedPreferences检索首选项时提供默认值,但在xml和代码中都必须维护默认值是愚蠢的。
1个回答

13

只需在 Application 类中使用此代码。

PreferenceManager.setDefaultValues(this, R.xml.preference, false);

它将从XML加载您的首选项,最后一个参数(readAgain)将确保用户首选项不会被覆盖。您需要在R.xml.preference文件中维护默认参数。
请查看Android API中的PreferenceManager.setDefaultValues以进行进一步研究。

1
很棒的答案,正好符合我的需求。 - prolink007

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接