Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Preferences Support Library – SwitchPreference no funciona

Hace unos días Google presentó la Preference Support Library ( Link ). Acabo de intentar implementarlo en mi aplicación, aunque parece que no funciona con SwitchPreferences cual es extraño porque Google afirma que podemos usar los mismos archivos XML que antes y explicity dice que SwitchPreferences ya está disponible para todos los API 7+ Dispositivos.

Citar ( Fuente )

[…] y añadir preferencias utilizando los mismos archivos XML de preferencia ( http://goo.gl/wOcIxI ), a la vez que añade soporte para elementos como SwitchPreference (anteriormente sólo disponible en dispositivos API 14+) a todos los dispositivos API 7+ . […]

Mensaje de error

 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.my.package/com.my.package.Main}: android.view.InflateException: Binary XML file line #4: Error inflating class (not found)SwitchPreference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

La parte relevante es, obviamente, la Binary XML file line #4: Error inflating class (not found)SwitchPreference .

Código Java

 public class FragmentSettings extends PreferenceFragmentCompat { @Override public void onCreatePreferences(Bundle bundle, String s) { addPreferencesFromResource(R.xml.preferences); } } 

Preferences.xml

 <?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <SwitchPreference android:key="pref_something" android:summary="Lorem ipsum dolor sit amet" android:title="Lorem ipsum" /> </PreferenceScreen> 

Así que básicamente la pregunta es: ¿Estoy haciendo algo mal o es realmente un error de la biblioteca de soporte de preferencias?

  • Cambiar Estado del conmutador sin animación
  • Custom Switch - el tamaño de la pista y el selector no funcionan por debajo de 21 API
  • ¿Cómo podemos implementar enlace de datos para el botón Switch para el evento onCheckedChageListener?
  • OnCheckedChanged se llama automáticamente
  • ¿Cómo personalizar el botón?
  • Android conmutador personalizado izquierda-derecha drawables
  • Android: ¿La API necesaria para usar Switch?
  • Personalizar la pista de conmutación Android 'animación'
  • One Solution collect form web for “Preferences Support Library – SwitchPreference no funciona”

    SwitchPreference añadido en el API de nivel 14. si está utilizando la Biblioteca de soporte de preferencias v7, debe utilizar SwitchPreferenceCompat lugar.

     <SwitchPreferenceCompat android:key="pref_something" android:summary="Lorem ipsum dolor sit amet" android:title="Lorem ipsum" /> 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.