实现 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"
对于您的第二个问题,请尝试清除您的应用数据。
我正在尝试添加 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"
对于您的第二个问题,请尝试清除您的应用数据。