2

我有一个SeekBarPreference显示的 XML 文件(并且滑块有效),但是在我单击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)时,关闭重新打开应用程序会显示应用程序初始化时的滑块,滑块位于其轨道的开头。

谁能帮我解决这个问题。

4

1 回答 1

0

回答。

最后,我创建(剪切和粘贴某人的)SeekBarPreference代码并将其放入我的应用程序中的一个类 amd,而不是 api 类。

然而,这与其说是一个解决方法,不如说是一个答案。

我仍然不明白为什么 androidSeekBarPreference但它没有以与 android 相同的方式存储其结果CheckBoxPreference(不需要额外的应用程序代码侦听器来捕获它的状态)。

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

于 2011-09-12T16:03:53.583 回答