Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK
Code

Cómo Codificar una Pantalla de Configuración en una Aplicación para Android

by
Difficulty:BeginnerLength:LongLanguages:

Spanish (Español) translation by Alfonso Mora (you can also view the original English article)

Final product image
What You'll Be Creating

El equipo de diseño material de Google da una clara definición de lo que deben hacer ajustes en su aplicación para Android:

Opciones de aplicación permiten a los usuarios indicar preferencias de cómo debería comportarse una aplicación.

En Google también afirman que los usuarios deben navegar a la configuración de la aplicación ya sea desde el menú de barra de herramientas o navegación de lado, con un elemento con la etiqueta Configuración.

Incluida la configuración de su aplicación permite a los usuarios para controlar algunas de las funcionalidades de su aplicación. Esto alegra a los usuarios en lugar de enojado, porque ahora están en control de cómo se comporta la aplicación.

Es muy recomendable para dar acceso a la configuración de la aplicación. Esto proporcionará una mejor experiencia de usuario para los usuarios, que conduce a una mejor revisión de la Google Play store, que entonces finalmente dan lugar a un mayor número de descargas de la app (que aumentar los ingresos).

Supongo debe han interactuado con la configuración de la aplicación en el dispositivo, por ejemplo al seleccionar un tono de llamada predeterminado, o mediante el control de su privacidad en la aplicación casi todas de las más populares aplicaciones que has descargado o se descarga en la tienda de Google Play incluyen un pantalla de configuración para controlar el comportamiento de la aplicación.

Un ejemplo de una aplicación popular que tiene una pantalla de configuración es la aplicación para Android Chrome de Google. En la pantalla de configuración de la aplicación, los usuarios puede elegir el motor de búsqueda predeterminado, cambiar el comportamiento de la notificación, privacidad de los usuarios control, etcetera. Puede ver usted mismo descargando la aplicación de Chrome en el Google Play store (si no ya lo tienes en tu dispositivo). La siguiente captura de pantalla es de la aplicación de Chrome, mostrando la pantalla de configuración de la aplicación.

Screenshot of Chrome app settings screen

En este post, usted aprenderá a crear una pantalla de configuración de la aplicación desde cero y también cómo leer los valores del usuario ha seleccionado la configuración de la aplicación. Para un bono adicional, usted también aprenderá cómo utilizar la característica de plantillas de estudio Android para arrancar rápidamente tu proyecto con una pantalla de configuración.

Un proyecto de muestra (en Kotlin) para este tutorial se puede encontrar en nuestro repositorio de GitHub para que pueda seguir fácilmente a lo largo.

Requisitos Previos

Para poder seguir este tutorial, necesitará:

  • Un entendimiento básico de algunas API de Android (como SharedPreferences)
  • Android Studio 3.0 o superior
  • Kotlin plugin 1.1.51 o superior

1. Crear un Proyecto Android Studio

Fuego Android Studio y cree un nuevo proyecto (lo que puede sea SettingsScreenDemo) con una actividad vacía llamada SettingsActivity. Asegúrese de comprobar también la casilla de verificación incluye Kotlin apoyo.

Android Studio create project screen

2. Crear un PreferenceFragment

Soporte API nivel 11 (panal) y arriba, podemos utilizar el PreferenceFragment. Esta clase es simplemente un fragmento que muestra una jerarquía de objetos de preferencia como listas.

En el código anterior, creamos una clase anidada SettingsFragment dentro de SettingsActivity (porque la clase SetttingsFragment es tan pequeña). Tenga en cuenta que nuestra clase SettingsFragment extiende la superclase PreferenceFragment y tiene un método addPrerenceFromResource dentro de onCreate(). En este método, nos dio un recurso ID R.xml.preference de la preferencia XML para lanzar — cuando se carga el fragmento. Por último, contamos con el fragmento a la actividad simplemente utilizando el FragmentTransaction para añadir a la interfaz de usuario, dentro de onCreate() de SettingsActivity.

3. Creación de Nuestras Preferencias

Crear un archivo XML y asígnele el nombre preferences.xml. Guarde este archivo dentro del directorio res/xml en su proyecto de aplicación. Tenga en cuenta que puede dar este archivo cualquier nombre, pero es muy recomendable seguir con el nombre convencional de "preferencias". También, por lo general debe tener solamente un tal archivo en un proyecto de aplicación.

El nodo raíz de nuestro archivo preferences.xml debe ser un elemento de <PreferenceScreen>. Dentro de este elemento de la raíz, ahora tenemos nuestra preferencia individual. Aquí están los atributos comunes asociados con una preferencia:

  • Android:key: este atributo se utiliza para obtener el valor del objeto SharedPreferences.
  • Android:Title: establece el título de la preferencia. Este es el texto en negrita.
  • Android:Summary: establece el Resumen de la preferencia (no es necesario). Este es el texto se desvaneció debajo del título.
  • android:defaultValue: establece el valor predeterminado para la preferencia.

Iremos a través de cada preferencia poco hemos definido arriba. Nota que también puede Agregar o personalizar una preferencia por el editor de preferencia de Android Studio— similar al editor de recursos de diseño ya está familiarizado con. Usted puede optar por agregar/editar el archivo XML de preferencia directamente en modo "Texto" o utilizar la interfaz de usuario arrastrar y colocar en modo "Diseño".

Android Studio preference editor

Como puede ver, en este editor, puede arrastrar y soltar cualquier preferencia en la sección de la paleta (a la izquierda). Una vez caído, debe seleccionarlo y modificar sus atributos en el panel de atributos (lado derecho) del editor. Tenga en cuenta que por defecto, estamos dado unos atributos para modificar. Para ver o modificar todos los atributos asociados con una preferencia seleccionada, asegúrese de hacer clic en la vista de todos de atributos de enlace en la parte inferior del panel atributos. Esto es muy similar al diseño editor ya sabes.

Ahora, repasemos cada una de las entidades de preferencia que disponemos.

Preferencia de la Casilla de Verificación

Un CheckBoxPreference es simplemente un widget de CheckBox que se incluye en la pantalla de preferencias. Esta preferencia devuelve el valor "false" o "verdadero" si se comprueba lo contrario. En otras palabras, devuelve un valor booleano dependiendo el estado del widget.

CheckBoxPreferense

Otros atributos que se pueden agregar a un CheckBoxPreference son:

  • Android:summaryOff: establece el Resumen de la preferencia en una pantalla de preferencia cuando es desactivada.
  • Android:summaryOn: establece el Resumen de la preferencia en una pantalla de preferencia cuando se activa.
  • android:disableDependentsState: el estado (true para o falso para apagar) que hace dependientes a ser desactivado. Puede ser un valor booleano, como "verdadero" o "falso".

Cambiar Preferencia

SwitchPreference realiza una funcionalidad similar a la CheckBoxPreference. Proporciona un estado dos opción toggleable ("on" u "off"). Utiliza un widget de Switch que permite al usuario deslizar derecha e izquierda ("off") ("on"). Esta preferencia también incluye los atributos descritos para la CheckBoxPreference arriba. Además, tiene los siguientes atributos:

  • android:switchTextOff: establece el texto utilizado en el interruptor sí mismo cuando en el estado "off".
  • android:switchTextOn: establece el texto utilizado en el interruptor sí mismo cuando en el estado "on".
SwitchPreference

Preferencia de EditText

Esta preferencia, al hacer clic, muestra un cuadro de diálogo al usuario que escriba un texto de entrada. Utiliza el widget EditText, incluyendo todos los atributos de ese widget que ya estás familiarizado con.

Tenga en cuenta que el valor almacenado en el SharedPreferences es una cadena.

EditTextPreference

Preferencia de Lista

Este tipo de preferencia mostrará una lista de entradas en un cuadro de diálogo cuando aprovechado. Aquí, se puede especificar un par de recursos de la matriz de la cadena en su preferencia XML. Esta matriz de cadena simplemente contiene una colección de cadenas. Este recurso se encuentra en res/values/arrays.xml.

Aquí está nuestra muestra ListPreference usando este recurso.

Hemos creado las entradas y los valores de entrada usando los atributos android:entries y android:entryValues respectivamente.

  • android:entries: el arreglo de discos legibles para presentar como una lista.
  • android:entryValues: el arreglo de discos para encontrar el valor de ahorrar para una preferencia cuando una entrada de las entradas está seleccionada.
ListPreference dialog when clicked

Por ejemplo, si utilizamos el número de minutos en cada duración como los valores de entrada, cuando el usuario escoge una duración de tiempo (por ejemplo, 30 minutos), el valor de entero correspondientes se almacenarán en SharedPreferences (p. ej. 30).

Preferencia de Lista MultiSelect

Éste es similar al ListPreference pero en lugar de botones de radio, tenemos las casillas de verificación. En otras palabras, el usuario puede seleccionar varios elementos en el cuadro de diálogo. Tenga en cuenta que el resultado se almacena en un "conjunto de cuerdas" en el SharedPreferences. Esto se puede recuperar utilizando getStringSet().

Preferencia de Tono de Llamada

Cuando una RingtonePreference es aprovechado, se muestra un cuadro de diálogo que contiene la lista de tonos disponibles en el dispositivo o emulador.

  • android:showDefault: si aparecerá la opción de tono de llamada predeterminado.
  • android:showSilent: Si una opción Silencio aparecerá en la lista. El usuario puede seleccionar esta opción si no quieren jugar cualquier tono de llamada.
RingtonePreference

Tenga en cuenta que el valor almacenado en el SharedPreferences de esta preferencia es una cadena especial. Esta cadena especial es un URI que apunta a un ContentProvider.

4. Creación de Grupos de Configuración

Se convierte en un problema cuando tienes una larga lista de preferencias o configuración, porque los usuarios pueden tener algunos problemas para escanear o entenderlos. Para resolver este problema, podemos agrupar nuestras preferencias. Echa un vistazo a la captura de pantalla de la aplicación de cromo le mostraron al principio otra vez, aviso agrupa las preferencias en dos categorías: Básico y Avanzado. Esto hace más fácil para el usuario entender las preferencias y no hacer la lista parecen demasiado abrumadora.

Ahora veamos lo sencillo que es realizar esta tarea.

Simplemente rodeamos las preferencias que desea agrupar en una <PreferenceCategory> de la etiqueta y dar a cada grupo un título utilizando el atributo android:title.

Preferences grouped with PreferenceCategory

5. Partir de la Intención

Observe que es posible abrir una actividad por sólo hacer clic en un elemento de preferencia en la pantalla Configuración. Esto puede ser útil cuando desea abrir una página web. Aquí está el código para hacerlo:

Aquí, hemos añadido un <intent> elemento dentro de la <Preference> elemento.

  • android:action: establece la acción de la intención (esto es similar a llamar a setAction() en un objeto por intención).
  • android:targetClass: establece la parte de la clase del nombre del componente (lo mismo que a setComponent() de un objeto por intención).
  • android:targetPackage: establece la parte del paquete del nombre del componente.
  • android:data: establece los datos a asignar (igual que a un objeto por intención de setData()).

Para abrir una página web, por ejemplo, podría utilizar lo siguiente:

6. Atar el Resumen de Preferencia a el Valor Seleccionado

Ahora veamos cómo actualizar la preferencia Resumen con el valor seleccionado por el usuario.

En esta clase, hemos creado un método auxiliar llamado bindPreferenceSummaryToValue(), que está dentro de nuestro objeto de compañía, para actualizar el texto Resumen de preferencia con el valor que el usuario ha seleccionado. Le pasamos un objeto de preferencia como argumento. La findPreference() devolverá una preferencia con tecla de preferencia.

Tenemos una variable sBindPreferenceSummaryToValueListener que es una instancia de Preference.OnPreferenceChangeListener. Esto es simplemente un oyente de cambio de preferencia que nos ayudará a actualizar el valor que el usuario ha seleccionado la preferencia Resumen. Comprobamos para casos especiales, como cuando la preferencia seleccionada es un RingtonePreference o un ListPreference. Para esos tipos de preferencia, hacer algún tratamiento especial para obtener la cadena Resumen. Si la preferencia es ni (como un EditTextPreference), simplemente establecemos el resumen en valor de cadena de preferencia.

Dentro de la bindPreferenceSummaryToValue(), establecemos el oyente de cambio de preferencia por llamar a onPreferenceChangeListener (en Java, el de setOnPreferenceChangeListener en su lugar) en el objeto de preferencia.

Ahora ejecute el proyecto nuevo para ver cómo funciona todo!

Settings screen showing changed summary in response to selection

7. Recuperar los Valores de Preferencia

Para comenzar a obtener valores de preferencia para la pantalla de configuración, que llamamos getDefaultSharedPreference() que está dentro de la clase PreferenceManager, se pasa un objeto de contexto de las preferencias cuyos valores son buscados. Tenga en cuenta que obtenemos los valores de defecto SharedPreferences para nuestra aplicación.

Llame al método getter correspondiente para el tipo que queremos recuperar el valor de en SharedPreferences. Paso la clave como primer argumento, y el valor por defecto es el segundo argumento.

8. Bono: Utilizando Plantillas de Android Studio

Ahora que han aprendido acerca de las API para crear una pantalla de configuración desde cero en Android, te voy a mostrar un atajo que lo hará más rápido la próxima vez. Puede utilizar una plantilla en lugar de codificación de una pantalla de configuración desde cero.

Android Studio proporciona plantillas de código que siguen las prácticas mejor diseño y desarrollo Android. Estas plantillas de código existentes (disponibles en Java y Kotlin) pueden ayudarle rápidamente poner en marcha su proyecto. Un tal plantilla puede utilizarse para crear una pantalla de configuración.

Para utilizar esta característica muy útil para un nuevo proyecto, primero fuego estudio Android.

Android Studios Create Android Project dialog

Escriba el nombre de la aplicación y haga clic en el botón Siguiente. Puedes dejar los predeterminados en el cuadro de diálogo de Dispositivos Android de Destino.

Haga clic en el botón Next nuevamente.

Android studios Add an Activity to Mobile dialog

En el Agregar una Actividad de Diálogo Móvil, desplácese hacia abajo y seleccione Configuración de Actividad. Haga clic en el botón Siguiente después de eso.

Android Studios Configure Activity dialog

En el último cuadro de diálogo, usted puede cambiar el nombre el nombre de la actividad, nombre del diseño o título si quieres. Por último, haga clic en el botón Finalizar para aceptar todas las configuraciones.

Estudio Android ahora nos ha ayudado a crear un proyecto con una actividad de configuración. Genial! Se aconseja explorar el código generado.

Se pueden usar plantillas para un proyecto de estudio Android ya existente. Simplemente vaya a Archivo > Nueva > Actividad > Configuración de Actividad.

Navigation flow to creating a new settings activity in Android Studio

Tenga en cuenta que las plantillas que vienen incluidas con el estudio de Android son buenas para diseños sencillos y aplicaciones básicas, pero si usted quiere realmente poner en marcha su aplicación, usted podría considerar algunas de las plantillas de aplicación de Envato Market.

Son un ahorro de tiempo enorme para los desarrolladores experimentados, ayudarles a cortar a través el slog de crear una aplicación desde cero y enfoque sus talentos en su lugar las piezas únicas y personalizadas de creación de una nueva aplicación

Conclusión

En este tutorial, aprendió a crear la configuración de la aplicación en Android desde cero. También exploramos cómo hacer fácil y rápidamente las plantillas Android Studio para crear la configuración de la aplicación.

Recomiendo revisar las directrices de diseño material oficial para la configuración obtener más información sobre cómo diseñar correctamente y use en Android. También, consultar la guía oficial de la API para aprender más sobre otras API para la creación de una actividad de configuración.

Para obtener más información acerca de codificación para Android, revisa algunos de nuestros otros cursos y tutoriales aquí en Envato Tuts+!


Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.