Nic*_*ick 2 android preference preferenceactivity android-preferences listpreference
我正在扩展PreferenceActivity我的设置屏幕。在这个偏好活动中,我有几个偏好,其中一个是定制的。问题如下:
在此自定义首选项(从 扩展ListPreference)中,我希望能够设置默认值,因此我覆盖了该setDefaultValue()方法。在这种方法中,我进行了一些解析,因此它将采用正确的值。当我试图用getValue()函数读取这个值时,它只返回null.
所以我想,当我把一些硬编码的值放在那里时会发生什么(你知道,也许我做错了什么,这不是第一次)。嗯,我还是null回来了。
任何想法我做错了什么?
编辑:
在 xml 文件中设置 defaultValue 并不是一个真正的选项,因为在我检索它们之前这些值是未知的。
我做了一个解决方法:
这样我在收集数据时设置了默认首选项
我终于找到了解决方案(一次除了 StackOverflow 之外)。
当您创建自定义 Preference 类时,
onSetInitialValue为XåpplI'-I0llwlg'I -指出onGetDefaultValue(TypedArray a, int index)例如,如果自定义首选项保存为 int,
@Override
protected void onSetInitialValue(boolean restore, Object defaultValue) {
setValue(restore ? getPersistedInt(FALLBACK_DEFAULT_VALUE) : (Integer) defaultValue);
}
@Override
protected Object onGetDefaultValue(TypedArray a, int index) {
return a.getInteger(index, FALLBACK_DEFAULT_VALUE);
}
Run Code Online (Sandbox Code Playgroud)
现在PreferenceManager.setDefaultValues() 终于加载了android:defaultValue自定义首选项。仍然没有修复空值和假值,但有针对其他地方发布的解决方法。
| 归档时间: |
|
| 查看次数: |
6993 次 |
| 最近记录: |