SeekBarPreference 似乎没有保持其价值
Posted
技术标签:
【中文标题】SeekBarPreference 似乎没有保持其价值【英文标题】:SeekBarPreference doesn't seem to persist its value 【发布时间】:2011-11-14 19:59:51 【问题描述】:我在一个显示的 XML 文件中有一个 SeekBarPreference
(并且滑块可以工作),但是在我单击 OK
按钮后,该值似乎消失了。
这是我的 XML 文件...
<?xml version="1.0" encoding="UTF-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<SeekBarPreference android:key="NOTE_MINIMUM"
android:summary="Set the lowest note in the playback sound"
android:max="125"
android:title="Lowest note"
android:persistent="true"
android:defaultValue="25" />
<CheckBoxPreference android:key="COLOR_CODING"
android:title="Show playback progress bar"
android:summary="string/color_coding_summary"
android:defaultValue="true" />
</PreferenceScreen>
我可以在我的代码中获取COLOR_CODING
字段的值,但不能获取NOTE_MINIMUM
字段,它使用prefs.getInt("NOTE_MINIMUM", -11);
作为未知字段返回
但我认为问题出在首选项对话框中。当我检查COLOR_CODING
框并关闭然后打开PreferencesScreen
时,它的状态仍然存在。当我在 NOTE_MINIMUM
对话框上移动滑块(并单击 OK
)时,关闭重新打开应用程序会显示滑块,就像应用程序初始化时一样,滑块位于其轨道的开头。
谁能帮我解决这个问题。
【问题讨论】:
【参考方案1】:已回答。
最后,我创建(剪切并粘贴了某人的)SeekBarPreference
代码,并将其放入我的应用程序中的一个类中,而不是 api 类。
但是,这与其说是一种解决方法,不如说是一种解决方法。
我仍然不明白为什么 android SeekBarPreference
但它不会以与 android CheckBoxPreference
相同的方式存储其结果(无需额外的应用程序代码侦听器来捕获它的状态)。
我仍然有兴趣看到另一个答案,因为您自己的代码似乎是其他人使用的方法。
【讨论】:
以上是关于SeekBarPreference 似乎没有保持其价值的主要内容,如果未能解决你的问题,请参考以下文章