support library last android android-support-library android-preferences android-switch

android - library - Biblioteca de soporte de preferencias-SwitchPreference no funciona



com.android.support:appcompat-v7 last version (1)

SwitchPreference agregado en el nivel 14 de API. Si está utilizando la biblioteca de soporte de preferencias v7, debe usar SwitchPreferenceCompat lugar.

<SwitchPreferenceCompat android:key="pref_something" android:summary="Lorem ipsum dolor sit amet" android:title="Lorem ipsum" />

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 explícitamente dice que SwitchPreferences ahora está disponible para todas las API 7+ dispositivos

Citar ( Link )

[...] y agregue preferencias usando los mismos archivos XML de preferencias ( http://goo.gl/wOcIxI ), al tiempo que agrega soporte para elementos como SwitchPreference (anteriormente solo disponible en dispositivos con API 14+) a todos los dispositivos con 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>

Básicamente, la pregunta es: ¿Estoy haciendo algo mal o es realmente un error de la Biblioteca de soporte de preferencias?