SeekBarPreference似乎没有坚持它的价值

时间:2011-09-11 16:39:57

标签: android slider seekbar persist

我在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 个答案:

答案 0 :(得分:0)

回答。

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

然而,这并不是一个解决方法。

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

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