Componentes y atributos de Preference Parte de Android Jetpack.

En este tema, se describen algunos de los componentes y atributos de Preference más usados a la hora de compilar una pantalla de configuración.

Componentes de Preference

En esta sección, se describen componentes comunes de Preference. Para obtener más información, consulta las páginas de referencia correspondientes a cada componente.

Infraestructura de Preference

PreferenceFragmentCompat: Un objeto Fragment que procesa la visualización de una jerarquía interactiva de objetos Preference.

Contenedores de Preference

PreferenceScreen: Un contenedor de nivel superior que representa una pantalla de configuración. Este es el componente raíz de tu jerarquía Preference.

PreferenceCategory: Un contenedor que se usa para agrupar objetos Preferences similares. Un objeto PreferenceCategory muestra un título de categoría y separa visualmente grupos de Preferences.

Objetos Preference individuales

Preference: El bloque de compilación básico que representa una configuración individual. Si se configura un elemento Preference para que persista, ese objeto tendrá un par clave-valor correspondiente que retendrá la elección del usuario para que puedas acceder a la configuración desde cualquier otro lugar de la aplicación.

EditTextPreference: Un objeto Preference que conserva un valor String. Los usuarios pueden presionar el objeto Preference para abrir un diálogo que incluye el campo de texto en el que el usuario puede cambiar el valor persistente.

ListPreference: un objeto Preference que conserva un valor de String. Los usuarios pueden cambiar ese valor en un diálogo que incluye una lista de botones de selección con etiquetas correspondientes.

MultiSelectListPreference: Un objeto Preference que conserva un conjunto de Strings. Los usuarios pueden cambiar esos valores en un diálogo que incluye una lista de casillas de verificación con etiquetas correspondientes.

SeekBarPreference: Un objeto Preference que conserva un valor entero. Para modificar ese valor, se debe arrastrar la barra de búsqueda correspondiente que se muestra en el diseño de Preference.

SwitchPreferenceCompat: Un objeto Preference que conserva un valor booleano. Para cambiar ese valor, se debe interactuar con el widget de interruptor correspondiente o presionar el diseño de Preference.

CheckBoxPreference: Un objeto Preference que conserva un valor booleano. Para cambiar ese valor, se debe interactuar con la casilla de verificación correspondiente o presionar el diseño de Preference.

Atributos de Preference

A continuación, se incluyen algunos de los atributos de uso más frecuente para configurar la apariencia y el comportamiento de Preference.

Atributos genéricos

title

Es un valor de String que representa el título del objeto Preference.

Ejemplo: app:title="Title"

summary

Es un valor de String que representa el resumen de Preference.

Ejemplo: app:summary="Summary"

icon

Es un objeto Drawable que representa el ícono del objeto Preference.

Ejemplo: app:icon="@drawable/ic_camera"

key

Es un valor de String que representa la clave que se usa a fin de mantener el valor del objeto Preference asociado. Una clave te permite personalizar aún más el objeto Preference durante el tiempo de ejecución. Debes establecer una clave para cada Preference en tu jerarquía.

Ejemplo: app:key="key"

enabled

Es un valor booleano que indica si los usuarios pueden interactuar con el objeto Preference. Cuando ese valor sea false, el objeto Preference aparecerá inhabilitado, y los no usuarios podrán interactuar con él. El valor predeterminado es true.

Ejemplo: app:enabled="false"

selectable

Es un valor booleano que indica si los usuarios pueden interactuar con el objeto Preference. El valor predeterminado es true.

Ejemplo: app:selectable="false"

isPreferenceVisible

Es un valor booleano que indica si Preference o una categoría de Preference son visibles. Esto equivale a llamar a setVisible().

Ejemplo: app:isPreferenceVisible="false"

defaultValue

Representa el valor predeterminado de un objeto Preference. Este valor se configura y se conserva cuando no se encuentra otro valor persistente de Preference. El tipo de valor depende del objeto Preference asociado.

Ejemplo: app:defaultValue="true"

dependency

Representa la clave de un objeto SwitchPreferenceCompat, que controla el estado de este elemento Preference. Cuando se desactiva el interruptor correspondiente, se inhabilita este objeto Preference y no puede modificarse.

Ejemplo: app:dependency="parent"

Atributos de PreferenceCategory

initialExpandedChildrenCount

Es un valor entero que habilita el comportamiento expandible de Preference. Este valor representa la cantidad máxima de elementos secundarios que se muestran en el objeto PreferenceGroup. Los elementos secundarios adicionales se contraen y pueden mostrarse si presionas el botón para expandirlos. De forma predeterminada, este valor es Integer.MAX_VALUE, y se muestran todos los elementos secundarios.

Advertencia: Asegúrate de configurar una clave en PreferenceCategory si usas este atributo de modo que se guarde el estado y se restaure correctamente cuando se modifique la configuración (por ejemplo, al rotar la pantalla).

Ejemplo: app:initialExpandedChildrenCount="0"

Atributos de ListPreference/MultiSelectListPreference

entries

Es un arreglo de Strings que corresponde a las entradas de la lista que se mostrarán al usuario. Cada uno de estos valores corresponde por índice al arreglo de valores que se conservan internamente. Por ejemplo, cuando un usuario selecciona la primera entrada de la lista, se conserva el primer elemento del arreglo de valores correspondientes.

Ejemplo: app:entries="@array/entries"

Advertencia: Recuerda que la longitud de ambos arreglos debe ser la misma, y los índices de cada arreglo deben coincidir con el par entrada/valor correcto.

entryValues

El arreglo de entradas que se debe conservar. Cada uno de estos valores corresponde por índice al arreglo de entradas de la lista que se muestran al usuario.

Ejemplo: app:entryValues="@array/values"