Android首选项:当用户没有使用首选项屏幕时如何加载默认值?

我使用PreferenceActivity让用户设置一些值。
我给它的xml文件定义的首选项。

我已经设置所有的android:defaultValue =“”为他们。

当我启动我的应用程序,我需要的首选项,或者如果他们还没有手动设置,我想要的默认值:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
boolean value = prefs.getBoolean("key"), false); 

但是,当android:defaultValue =“true”我仍然得到false。所以,看起来像XML中设置的defaultValues不会在任何地方使用,但初始化首选项屏幕时。

我不想硬编码的getBoolean()方法中的默认值。所以,有没有办法获得默认值只有定义这些在1个地方?

这个问题类似于我的:

initialize-preferences-from-xml-in-main-activity

只需在onCreate方法中使用此代码:

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

它将从XML加载您的首选项,最后一个参数(readAgain)将保证用户首选项不会被覆盖。

请参阅Android API中的PreferenceManager.setDefaultValues以进行进一步调查。

http://stackoverflow.com/questions/2691772/android-preferences-how-to-load-the-default-values-when-the-user-hasnt-used-th

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:Android首选项:当用户没有使用首选项屏幕时如何加载默认值?