我在显示的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
)时,对应用程序进行关闭-重新打开时会显示该滑块与应用程序初始化时的状态相同,并且滑块位于其轨道的开头。谁能帮我解决这个问题。
最佳答案
回答。
最后,我创建(剪切并粘贴了某人的)SeekBarPreference代码,并将其放入我的应用程序amd中称为的类中,而不是api类中。
但是,这并不是解决方法,而是答案。
我仍然不明白为什么Android的SeekBarPreference会以与Android CheckBoxPreference相同的方式存储结果(不需要额外的应用程序代码侦听器来捕获其状态)。
我仍然很想看到另一个答案,因为您自己的代码似乎是其他所有人使用的方法。