【发布时间】: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