Я пытаюсь создать пользовательскую настройку панели поиска, но Android не может найти элемент.Я получаю
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setVisibility(int)' on a null object reference at
at android.support.v7.preference.SeekBarPreference.onBindViewHolder(SeekBarPreference.java:154)
, когда пытаюсь получить доступ к настройке.Причина, по-видимому, заключается в том, что он не может найти мой пользовательский элемент панели поиска и связать его с предпочтением.Обычно я бы назвал элемент пользовательского предпочтения что-то вроде @android:id/seekbar
, чтобы заставить работать связь, но когда дело доходит до SeekBar, он говорит, что это личное.Я попытался @+id/seekbar
согласно Android: создание пользовательской настройки , но, похоже, не получается привязать мою пользовательскую панель поиска к настройке.
Вот мой код:
Предпочтительный XML
<android.support.v7.preference.SeekBarPreference
android:key="my_seekbar_preference"
android:layout="@layout/seekbar_preference"
android:max="10"
android:defaultValue="5" />
Схема SeekBar
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_margin="@dimen/half_normal">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/half_normal"
android:layout_marginLeft="@dimen/normal"
style="@style/SettingsSubHeader"
android:text="Seekbar Settings"/>
<SeekBar
android:id="@+id/seekbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/Widget.AppCompat.SeekBar.Discrete"
android:max="10"
android:min="0"/>
</LinearLayout>
Есть идеи о том, что я делаю неправильно?У меня нет этой проблемы с другими моими пользовательскими настройками.