Preferencias de Android Jetpack

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:

Output

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:

Output

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:

Output

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:

Output

Publicación traducida automáticamente

Artículo escrito por shekharshinde9990 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *