Componentes y atributos de Preference   Part of Android Jetpack.

En este artículo, se describen algunos de los componentes y atributos de Preference más utilizados al crear una pantalla de configuración.

Componentes de Preference

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

Infraestructura de Preference

PreferenceFragmentCompat: un Fragment que controla cómo se muestra 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 la jerarquía de Preference.

PreferenceCategory: un contenedor que se utiliza para agrupar Preferences similares. Un elemento PreferenceCategory muestra un título de categoría y separa visualmente los grupos de Preferences.

Elementos Preference individuales

Preference: el componente básico que representa una configuración individual. Si se configura un Preference para que recupere elementos, tiene un par clave-valor correspondiente que contiene la opción del usuario para la configuración a la que se puede acceder en otra parte de la aplicación.

EditTextPreference: un Preference que recupera un valor String. Los usuarios pueden presionar el objeto Preference para iniciar un diálogo que contenga el campo de texto que permita cambiar el valor recuperado.

ListPreference: un Preference que recupera un valor String. Los usuarios pueden cambiar este valor en un diálogo que contiene una lista de botones de opción con las etiquetas correspondientes.

MultiSelectListPreference: un Preference que recupera un conjunto de Strings. Los usuarios pueden cambiar estos valores en un diálogo que contiene una lista de casillas de verificación con las etiquetas correspondientes.

SeekBarPreference: un Preference que recupera un valor entero. Este valor se puede cambiar arrastrando la barra de búsqueda correspondiente que se muestra en el diseño de Preference.

SwitchPreferenceCompat: un Preference que recupera un valor booleano. Este valor se puede cambiar interactuando con el widget de interruptor correspondiente o presionando el diseño de Preference

CheckBoxPreference: un Preference que recupera un valor booleano. Este valor se puede cambiar interactuando con la casilla de verificación correspondiente o presionando el diseño de Preference

Atributos de Preference

A continuación, se enumeran algunos de los atributos más utilizados que configuran la apariencia y el comportamiento de Preference.

Atributos genéricos

title

Un valor de String que representa el título de Preference.

Ejemplo: app:title="Title"

summary

Un valor de String que representa el resumen de Preference.

Ejemplo: app:summary="Summary"

icon

Un Drawable que representa el ícono de Preference.

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

key

Un valor String que representa la clave que se utiliza para mantener el valor del elemento Preference asociado. Una clave permite personalizar aún más el elemento Preference durante el tiempo de ejecución. Deberías configurar una clave para cada Preference de tu jerarquía.

Ejemplo: app:key="key"

enabled

Un valor booleano que indica si los usuarios pueden interactuar con el elemento Preference. Si el valor es false, Preference aparecerá inhabilitado, y los usuarios no podrán interactuar con él. El valor predeterminado es true.

Ejemplo: app:enabled="false"

selectable

Un valor booleano que indica si los usuarios pueden interactuar con el elemento Preference. El valor predeterminado es true.

Ejemplo: app:selectable="false"

isPreferenceVisible

Un valor booleano que indica si un Preference o una categoría de Preference es visible. Esto equivale a invocar a setVisible().

Ejemplo: app:isPreferenceVisible="false"

defaultValue

Representa el valor predeterminado de un Preference. Este valor se configura y recupera cuando no se encuentra ningún otro valor recuperado de este elemento Preference. El tipo de valor depende del elemento Preference asociado.

Ejemplo: app:defaultValue="true"

dependency

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

Ejemplo: app:dependency="parent"

Atributos de PreferenceCategory

initialExpandedChildrenCount

Un valor entero que permite expandir el comportamiento de Preference. Este valor representa el número máximo de elementos secundarios que se mostrarán en PreferenceGroup. Se contraerán los elementos secundarios adicionales, aunque se podrán mostrar presionando el botón para expandir. De forma predeterminada, este valor es Integer.MAX_VALUE, y se muestran los elementos secundarios.

Advertencia: Asegúrate de establecer una clave en PreferenceCategory si utilizas este atributo para que se guarde el estado y se restaure correctamente cuando cambie la configuración (por ejemplo, al girar la pantalla).

Ejemplo: app:initialExpandedChildrenCount="0"

Atributos de ListPreference y MultiSelectListPreference

entries

Una matriz de Strings que corresponde a las entradas de la lista que se mostrarán al usuario. Cada uno de estos valores corresponde por índice a la matriz de valores que se recuperan de forma interna. Por ejemplo, cuando un usuario selecciona la primera entrada de la lista, recupera el primer elemento de la matriz de valores correspondiente.

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

Advertencia: Asegúrate de que la longitud de ambas matrices sea la misma, y de que los índices de cada matriz coincidan con el par de entrada/valor correcto.

entryValues

La matriz de entradas que se deben recuperar. Cada uno de estos valores corresponde por índice a la matriz de entradas de la lista que se muestran al usuario.

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