【发布时间】:2011-02-03 13:01:58
【问题描述】:
我正在为我的设置屏幕扩展PreferenceActivity。在这个偏好活动中,我有几个偏好,其中一个是定制的。问题如下:
在这个自定义首选项(从ListPreference 扩展)中,我希望能够设置默认值,因此我覆盖了setDefaultValue() 方法。在这种方法中,我做了一些解析,所以它会采用正确的值。当我尝试使用getValue() 函数读取此值时,它只会返回null。
所以我想,当我把一些硬编码的值放在那里时会发生什么(你知道,也许我做错了什么,这不是第一次)。好吧,我仍然收到null 的回复。
任何想法我做错了什么?
编辑:
在 xml 文件中设置 defaultValue 并不是一个真正的选项,因为这些值在我检索它们之前是未知的。
我做了一个解决方法:
- 首次启动应用时:获取数据
- 在首选项中设置值。
这样我在收集数据时设置默认首选项
【问题讨论】:
-
在调用 getValue() 之前是否调用了 setDefaultValue()?我在一个preferences.xml 文件中设置了我的默认首选项,该文件在创建我的首选项视图之前被读取 - 你如何设置你的默认值?
-
是的,但在代码中。问题是在应用程序首次启动之前我不知道默认值。所以我尝试在用户第一次打开preferenceactivity时设置它
标签: android android-preferences preferenceactivity preference listpreference