我在设置屏幕上扩展PreferenceActivity
。在此首选项活动中,我有几个首选项是定制的。问题如下:
在此自定义首选项(从ListPreference
扩展)中,我希望能够设置默认值,因此我覆盖了setDefaultValue()
方法。在这种方法中,我进行了一些解析,因此它将采用正确的值。当我尝试使用getValue()
函数读取此值时,它仅返回null
。
因此,我想到了,当我在其中添加一些硬编码的值时会发生什么(您知道,也许我做错了,这不是第一次)。好吧,我还是回来了。
任何想法我在做什么错?
编辑:
在xml文件中设置defaultValue并不是一个真正的选择,因为直到我检索它们之后才知道这些值。
我做了一个解决方法:
首次启动应用程序时:获取数据
在首选项中设置值。
这样,我在收集数据时设置默认首选项
最佳答案
setDefaultValue
不能以您认为的方式工作。查看Preference.java
的the source,您将了解所有逻辑。
设置默认值的首选方法是在应用程序的android:defaultValue
文件中指定preferences.xml
属性。