FindViewById devuelve nulo para el diseño de preferencias

Tengo una pantalla de preferencias (responder_generic.xml) de la siguiente manera:

<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > <Preference android:defaultValue="false" android:key="auto_responder_key" android:layout="@layout/preference_header_switch_item_responder" android:title="@string/auto_responder"> </Preference> </PreferenceScreen> 

Que estoy instanciando de la siguiente manera: (en la versión 2.3.3)

 addPreferencesFromResource(R.xml.responder_generic); 

Y mi layout = preference_header_switch_item_responder ve como sigue:

 <?xml version="1.0" encoding="utf-8"?> <!-- Layout of a header item in PreferenceActivity. --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="33dp" android:gravity="center_vertical" android:minHeight="33dp" android:id="@+id/preference_header_switch_item_responder" style="?android:attr/listSeparatorTextViewStyle" > <RelativeLayout android:layout_width="0dip" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:layout_weight="1" > <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ellipsize="marquee" android:fadingEdge="horizontal" android:singleLine="true" android:text="@string/auto_responder" android:textAppearance="?android:attr/textAppearanceSmall" android:textStyle="bold" /> <TextView android:id="@+id/summary" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@android:id/title" android:ellipsize="end" android:textAppearance="?android:attr/textAppearanceSmall" /> </RelativeLayout> <include layout="@layout/compound_button" /> </LinearLayout> 

Ahora, tengo el botón compuesto definido en la carpeta de layout/v-14 y el layout/v-14 respectivamente de la siguiente manera:

 <?xml version="1.0" encoding="utf-8"?> <merge xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <CheckBox android:id="@+id/switchWidget" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:clickable="true" android:focusable="false" android:padding="8dip" android:layout_marginRight="14dip" /> </merge> 

y

 <?xml version="1.0" encoding="utf-8"?> <merge xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <Switch android:id="@+id/switchWidget" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:clickable="true" android:focusable="false" android:padding="8dip" android:layout_marginRight="14dip"/> </merge> 

En el método onPostCreate , estoy tratando de encontrar el checkbox / switch en tiempo de ejecución utilizando findViewById(R.id.switchWidget) pero siempre devuelve null.

¿Alguna idea de cuál podría ser la razón?

La razón era que estaba agregando múltiples preferencias a la pantalla, por lo tanto, tuve que recurrir a la adición de una preferencia personalizada. Se ha proporcionado una solución detallada en el siguiente enlace:

La solución se ha proporcionado en el siguiente enlace.

Uso de findviewbyid en preferenciaactividad

  • Activar y desactivar una preferencia
  • Cambiar la fuente PreferenceFragment a través de fuentes de activos
  • ¿Qué clase de preferencia para un entero?
  • Cómo eliminar la preferencia compartida mientras se desinstala la aplicación en android
  • Cómo guardar estructuras complejas en preferencias compartidas
  • Problemas con pantallas de preferencias de doble panel
  • Android switchpreference ¿cómo puedo configurar el valor predeterminado de la preferencia de conmutador?
  • SwitchPreferences llama varias veces al método onPreferenceChange ()
  • Android CheckBoxPreference: cómo deshabilitar y habilitar otras preferencias en el cambio de preferencias
  • Android: ¿Dónde se debe definir / registrar un OnSharedPreferenceChangeListener?
  • PreferenceDataStore en Android O
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.