Hoy en día podemos observar que en casi todas las aplicaciones que utilizamos, está disponible una pantalla de configuración desde donde los usuarios pueden cambiar sus preferencias de acuerdo a ellas. Por ejemplo, las aplicaciones como WhatsApp tienen opciones para el modo oscuro y el modo claro, los usuarios pueden cambiar el tema de una aplicación con un solo clic. Implementar una pantalla de configuración es una muy buena manera de brindar una mejor experiencia de usuario y también es una especie de tendencia. Es por eso que debemos implementar las Preferencias en su aplicación de la mejor manera posible y más fácil. En este artículo, analizaremos los siguientes puntos.
- Empezar con
- Preferencias básicas
- Diálogos
- Widgets
Primeros pasos con las preferencias de jetpack
Antes de empezar debemos saber que existen dos formas de implementar preferencias en nuestra app:
- La forma XML: En la forma XML declaramos todas nuestras preferencias en un archivo XML y usamos este archivo en nuestra actividad.
- La forma de codificación: Además de XML, también podemos escribir códigos para las Preferencias en nuestra actividad. Si queremos crear una aplicación de Android sin escribir tantas líneas de código, entonces no deberíamos usar esto.
Ahora conocemos las formas de las preferencias del usuario en nuestra aplicación, ahora agreguemos la biblioteca para las preferencias del jetpack, pero antes de eso, cree un proyecto.
Paso 1: Crear un nuevo proyecto
Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Kotlin como lenguaje de programación.
Paso 2: Agregar dependencias
Copie la siguiente dependencia de preferencia de Jetpack y péguela en su archivo build.gradle de nivel de aplicación.
implementación ‘androidx.preference:preference:1.1.0-alpha05’
Preferencias básicas
Podemos realizar muchas tareas utilizando la pantalla de configuración de nuestra aplicación, pero las más fáciles y comunes son Texto simple, Texto simple con cualquier resumen, Texto simple con ícono y Texto simple con algunos estilos o decoración de texto también. Para usar una Preferencia de texto simple, agregue el siguiente código en su archivo XML en PreferenceScreen:
XML
<Preference app:key="preference_example" app:title="@string/title_preference" app:summary="@string/summary_preference"/>
Hemos usado tres propiedades en el código anterior. Aprenderemos sobre cada propiedad de la etiqueta <Preference> que usamos.
- app: la clave se usa para identificar de forma única una preferencia, al igual que android: la etiqueta de identificación que usamos normalmente.
- app : title se usa para dar un título a la preferencia
- aplicación: el resumen se usa para dar un resumen a una determinada preferencia
Solo agregar un texto simple no es suficiente, por lo que también puede agregar algo de estilo a las preferencias. Para eso, debe crear una string en strings.xml y usar esa string en su archivo XML de actividad dentro de la etiqueta <preference>. Por ejemplo, creamos dos strings en strings.xml
XML
<string name="title_preference"><b>bold</b> <i>italic</i> <u>Underlined word</u></string> <string name="summary_preference">You can use some styles in your preferences just the way its done hear.</string>
Después de agregar strings en strings.xml, su preferencia se verá así
XML
<Preference app:key="styled_example" app:title="@string/title_preference" app:summary="@string/summary_preference"/>
También puede agregar un ícono a una preferencia usando la propiedad de la aplicación: ícono como se muestra a continuación
XML
<Preference app:key="icon" app:title="@string/title_preference" app:summary="@string/summary_preference" app:icon="@drawable/ic_android"/>
Salida para las preferencias anteriores:
Para usar preferencias escribiendo código, debe crear un objeto de preferencia y aplicar todas las propiedades como se muestra a continuación.
Kotlin
val simplePreference = Preference(context).apply { // to set the KEY key = "simple_preference" // to set the TITLE title = "Titie of Preference" // to set the SUMMARY summary = "Summary of Preference" // to add ICON icon = ContextCompat.getDrawable(context, R.drawable.ic_android) // to set one line title isSingleLineTitle = true }
Diálogos
También podemos añadir diálogos a nuestras preferencias. Podemos usar el diálogo de cualquier tipo como un simple diálogo de alerta con solo texto dando un mensaje o un diálogo con EditText para tomar entrada o diálogo que muestra múltiples preferencias de lista de selección.
Diálogo de edición de texto:
Agregue el siguiente código que creará un texto y, después de hacer clic en él, abrirá un Diálogo sin escribir ningún código en el backend.
XML
<EditTextPreference app:key="edittext_example" app:title="@string/title_preference" app:useSimpleSummaryProvider="true" app:dialogTitle="@string/dialog_title_preference"/>
Al usar Kotlin, se puede hacer como se muestra a continuación.
val editTextPreference = EditTextPreference(context).apply { key = "edittext_example" ... }
Lista de preferencias:
Ahora agregaremos las preferencias de la lista, pero antes de eso, agregue las siguientes líneas en su archivo strings.xml .
XML
<string-array name="entries"> <item>First Value</item> <item>Second Value</item> <item>Third Value</item> </string-array> <string-array name="entry_values"> <item>1</item> <item>2</item> <item>3</item> </string-array>
Ahora agregue el siguiente código para Listpreference en su actividad principal.xml
XML
<ListPreference app:key="list_example" app:title="@string/title_preference" app:useSimpleSummaryProvider="true" app:entries="@array/entries" app:entryValues="@array/entry_values" app:dialogTitle="@string/dialog_title_preference"/>
Producción:
Agregar preferencias de lista mediante el código Kotlin podría ser más fácil porque en XML debe declarar elementos por separado en string.xml
Kotlin
val listPreference = ListPreference(context).apply { key = "list_example" title = "@string/title_preference" entries = arrayOf("First Value", "Second Value", "Third Value") entryValues = arrayOf("1", "2", "3") }
Las preferencias de lista que construimos arriba solo pueden seleccionar solo 1 opción de múltiples opciones, pero ahora crearemos una preferencia de lista de selección múltiple desde la cual podremos seleccionar múltiples opciones. El código es como se muestra a continuación.
XML
<MultiSelectListPreference app:key="multi_select_list" app:title="@string/title_preference" app:summary="@string/summary_preference" app:entries="@array/entries" app:entryValues="@array/entry_values" app:dialogTitle="@string/dialog_title_preference"/>
Su código Kotlin es el siguiente
Kotlin
val multiSelectListPreference = MultiSelectListPreference(context).apply { key = "multi_select_list" title = "@string/title_preference" summary = "@string/summary_preference" entries = arrayOf("First Value", "Second Value", "Third Value") entryValues = arrayOf("1", "2", "3") }
Producción:
Widgets
Ahora aprenderemos cómo usar los widgets de preferencia. Podemos usar los siguientes widgets en nuestra Preferencia.
- Caja
- Barra de busqueda
Haremos otra actividad que usará todos los widgets anteriores como se muestra en el código a continuación.
XML
<CheckBoxPreference android:key="checkbox_example" android:title="@string/title_preference" android:summary="@string/summary_preference"/> <SeekBarPreference android:key="seekbar_example" android:title="@string/title_preference" android:defaultValue="20"/>
Producción:
Publicación traducida automáticamente
Artículo escrito por shekharshinde9990 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA