【问题标题】:Problems while implementing AndroidX SeekBarPreference实现 AndroidX SeekBarPreference 时的问题
【发布时间】:2020-05-15 18:14:25
【问题描述】:

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

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

其他 SeekBar 特定属性(例如标题、摘要、defaultValue、min、max)可以直接在首选项小部件布局上设置。

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


    【解决方案1】:

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

    android:max="10"
    

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

    【讨论】:

    • 感谢清除应用程序数据后它工作。虽然 app:max 属性不存在,但仍然很奇怪。
    猜你喜欢
    • 2019-09-28
    • 1970-01-01
    • 2021-05-22
    • 1970-01-01
    • 1970-01-01
    • 2019-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多