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
Stringque representa el título del objetoPreference.Ejemplo:
app:title="Title" - 
    
summary - 
    
Es un valor de
Stringque representa el resumen dePreference.Ejemplo:
app:summary="Summary" - 
    
icon - 
    
Es un objeto
Drawableque representa el ícono del objetoPreference.Ejemplo:
app:icon="@drawable/ic_camera" - 
    
key - 
    
Es un valor de
Stringque representa la clave que se usa a fin de mantener el valor del objetoPreferenceasociado. Una clave te permite personalizar aún más el objetoPreferencedurante el tiempo de ejecución. Debes establecer una clave para cadaPreferenceen 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 seafalse, el objetoPreferenceaparecerá inhabilitado, y los no usuarios podrán interactuar con él. El valor predeterminado estrue.Ejemplo:
app:enabled="false" - 
    
selectable - 
    
Es un valor booleano que indica si los usuarios pueden interactuar con el objeto
Preference. El valor predeterminado estrue.Ejemplo:
app:selectable="false" - 
    
isPreferenceVisible - 
    
Es un valor booleano que indica si
Preferenceo una categoría dePreferenceson visibles. Esto equivale a llamar asetVisible().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 dePreference. El tipo de valor depende del objetoPreferenceasociado.Ejemplo:
app:defaultValue="true" - 
    
dependency - 
    
Representa la clave de un objeto
SwitchPreferenceCompat, que controla el estado de este elementoPreference. Cuando se desactiva el interruptor correspondiente, se inhabilita este objetoPreferencey 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 objetoPreferenceGroup. Los elementos secundarios adicionales se contraen y pueden mostrarse si presionas el botón para expandirlos. De forma predeterminada, este valor esInteger.MAX_VALUE, y se muestran todos los elementos secundarios.Advertencia: Asegúrate de configurar una clave en
PreferenceCategorysi 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"