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?