7

我为 PreferenceScreen 创建了一个基于 xml 的 PreferenceActivity。在 xml 中,您可以将默认值分配给不同的首选项。但是在打开和关闭屏幕之前,这些并没有存储在我的 SharedPreferences 中。

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

有没有办法在不强制用户打开和关闭首选项活动的情况下存储来自首选项屏幕 xml 的所有首选项?

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

4

1 回答 1

13

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

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

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

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

于 2010-11-30T12:44:24.703 回答