我在设置屏幕上扩展PreferenceActivity。在此首选项活动中,我有几个首选项是定制的。问题如下:

在此自定义首选项(从ListPreference扩展)中,我希望能够设置默认值,因此我覆盖了setDefaultValue()方法。在这种方法中,我进行了一些解析,因此它将采用正确的值。当我尝试使用getValue()函数读取此值时,它仅返回null

因此,我想到了,当我在其中添加一些硬编码的值时会发生什么(您知道,也许我做错了,这不是第一次)。好吧,我还是回来了。

任何想法我在做什么错?

编辑:
在xml文件中设置defaultValue并不是一个真正的选择,因为直到我检索它们之后才知道这些值。

我做了一个解决方法:


首次启动应用程序时:获取数据
在首选项中设置值。


这样,我在收集数据时设置默认首选项

最佳答案

setDefaultValue不能以您认为的方式工作。查看Preference.javathe source,您将了解所有逻辑。

设置默认值的首选方法是在应用程序的android:defaultValue文件中指定preferences.xml属性。

10-08 18:20