我正在使用 PreferenceActivity 让用户设置一些值。
我正在向它提供具有定义的首选项的 xml 文件。
我已经设置了所有android:defaultValue=""
对于他们来说。
当我启动应用程序时,我需要首选项,或者如果尚未手动设置它们,我需要默认值:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
boolean value = prefs.getBoolean("key"), false);
然而,当android:defaultValue="true"
我仍然得到false
。因此,看起来 XML 中设置的 defaultValues 没有在任何地方使用,除了在初始化首选项屏幕时之外。
我不想对默认值进行硬编码getBoolean()
方法。那么,有没有办法只在一个地方定义这些默认值呢?
这个问题和我的很相似:
从主活动中的 xml 初始化首选项
只需使用此代码onCreate
method:
PreferenceManager.setDefaultValues(this, R.xml.preference, false);
它将从 XML 加载您的首选项和最后一个参数 (readAgain
)将保证用户首选项不会被覆盖。这意味着设置readAgain
论证false
意味着如果过去从未调用过此方法,则只会设置默认值,因此您无需担心每次创建 Activity 时都会覆盖用户的设置
看看PreferenceManager.setDefaultValues在 Android API 中进行进一步调查。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)