我在显示的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相同的方式存储结果(不需要额外的应用程序代码侦听器来捕获其状态)。

我仍然很想看到另一个答案,因为您自己的代码似乎是其他所有人使用的方法。

07-24 13:28