实施AndroidX SeekBarPreference

我正在尝试将SeekBarPreference添加到我的Android Settings PreferenceScreen中。 例如,当我使用EditTextPreference时,一切正常,因此肯定是SeekBar引起了问题。

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

其他SeekBar特定属性(例如标题,摘要,defaultvalue,最小值,最大值)可以直接在首选项小部件布局上设置。

第二个问题:当我使用下面的代码时,打开设置时,我的应用程序崩溃并显示以下消息: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>

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

谢谢。

shanghaiditu 回答:实施AndroidX SeekBarPreference

对于您的第一个问题,请使用:

android:max="10"

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

本文链接:https://www.f2er.com/2345098.html

大家都在问