实现 AndroidX SeekBarPreference 时出现的问题

Problems while implementing AndroidX SeekBarPreference

我正在尝试添加 SeekBarPreference to my Android Settings PreferenceScreen。 例如,当我使用 EditTextPreference 时一切正常,所以肯定是 SeekBar 导致了问题。

第一个问题:我可以用 app:min="" 指定一个最小值,但是 app:max="" 似乎不存在。我猜这是 API 中的一个错误,因为我在文档中找到此语句:

Other SeekBar specific attributes (e.g. title, summary, defaultValue, min, max) can be set directly on the preference widget layout.

第二个问题:当我使用下面的代码时,我的应用程序在打开设置时崩溃并显示以下消息:Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer

我的代码:

public class PreferenceFragment extends PreferenceFragmentCompat {

    @Override
    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
        setPreferencesFromResource(R.xml.settings, rootKey);
    }
}

<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto">

    <PreferenceCategory
        app:key="category_playback"
        app:title="Playback">

        <SeekBarPreference
            app:defaultValue="15"
            app:key="skip_time"
            app:min="5"
            app:summary="Seconds to skip"
            app:title="Skip time" />

    </PreferenceCategory>

</PreferenceScreen>

有人知道如何修复它吗?如果没有解决方案,我将尝试以编程方式实现它。

谢谢。

对于你的第一个问题使用:

android:max="10"

对于您的第二个问题,请尝试清除您的应用数据。