作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我已经为 PreferenceScreen 创建了一个基于 xml 的 PreferenceActivity。在 xml 中,您可以为不同的首选项分配默认值。但是在屏幕打开和关闭之前,这些都没有存储在我的 SharedPreferences 中。
问题是我想立即使用存储在这个屏幕中的首选项(比如服务器地址),用户只需要在他想更改默认值时打开它。
有没有一种方法可以存储来自 preferencescreen xml 的所有首选项,而无需强制用户打开和关闭首选项 Activity ?
我知道您可以在从 SharedPreferences 检索首选项时提供默认值,但是必须在 xml 和代码中都维护默认值是愚蠢的。
最佳答案
只需在 Application
类中使用此代码即可。
PreferenceManager.setDefaultValues(this, R.xml.preference, false);
它将从 XML 加载您的首选项,最后一个参数 (readAgain
) 将保证用户首选项不会被覆盖。您需要在 R.xml.preference 文件中维护默认参数。
查看 PreferenceManager.setDefaultValues在 Android API 中进行进一步调查。
关于android - 如何将 PreferenceActivity 中的 SharedPreferences 设置为 Android 中的默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4313842/
我是一名优秀的程序员,十分优秀!