Preferencias sin métodos obsoletos
Estoy intentando (correctamente) implementar una pantalla de preferencias, pero el problema es que todos los métodos utilizados para leer las preferencias de los archivos xml están obsoletos (o simplemente no los reconozco). El código de ejemplo oficial en el sitio de dev ( PreferenceActivity ) utiliza métodos obsoletos. ¿Alguien ha descubierto una forma de implementar una pantalla de preferencias con un archivo xml pero sin usar: addPreferencesFromResource (int) o findPreference (CharSequence)? ¿O acaso los métodos han sido marcados como obsoletos sin implementar la alternativa?
EDIT: Desarrollo para Android versión 2.1
- ¿Cómo validar el formato y los valores de EditTextPreference introducidos en Android 2.1?
- Atributo de visibilidad en las preferencias xml no funciona? (Android 2.3)
- No se puede guardar ni cargar entero con las preferencias
- El método onPreferenceChange no se llama cuando los cambios de Listpreferences
- ¿Cómo obtengo las preferencias para trabajar en Android?
- Escapar% en las preferencias de ICS - ¿Realmente tengo que escribir la manipulación de versiones específicas de la cadena?
- Eliminar / ocultar una preferencia de la pantalla
- ¿Cómo personalizar el tema de la pantalla de preferencias para que parezca eso?
- ¿Cómo agregar la categoría en el encabezado de preferencia?
- Android exploit dalvik classes: Preferencias
- ¿Es posible cargar elementos ListPreference desde un adaptador?
- Android: Recuperación de preferencias compartidas de otra aplicación
- Android PreferencesActivity para crear una preferencia MODE_WORLD_WRITEABLE entre aplicaciones
¿Por qué su desaprobado y cuál es la alternativa está bastante bien explicado en la documentación:
Esta es la clase base para que una actividad muestre una jerarquía de preferencias para el usuario. Antes de HONEYCOMB esta clase sólo permitía la visualización de un solo conjunto de preferencia; Esta funcionalidad ahora debe encontrarse en la nueva clase PreferenceFragment. Si utiliza PreferenceActivity en su modo antiguo, la documentación allí se aplica a las API obsoletas aquí.
En otras palabras, si quieres ser compatible con HONEYCOMB, entonces debes usar PreferenceFragment para tu PreferenceActivity
. Se puede encontrar una explicación detallada sobre cómo usar fragmentos en dev guide .
En Android 3, Nivel 11 de API, se introdujo el modelo de preferencias basado en fragmentos, lo que suprime los métodos que "no son relevantes para una moderna PreferenceActivity basada en fragmentos".
Dado que la referencia en línea es la última versión, muestra los métodos como obsoletos. Al manipular el menú desplegable Nivel de API, puede marcar los métodos que no están en la versión de Android dada, pero no actualiza las descripciones para que coincidan, por lo que sigue apareciendo como obsoleto.
Si no planeas soportar Android 3+, deberías usar los métodos antiguos, ya que las soluciones basadas en fragmentos no funcionarán en las versiones anteriores.
- ¿Cómo puedo saber si el selector de métodos de entrada está abierto o cerrado?
- Dagger 2 Named no se puede proporcionar sin un método @Provides