Configuración   Part of Android Jetpack.

Las configuraciones permiten que los usuarios modifiquen las funciones y los comportamientos de una aplicación. Pueden afectar al comportamiento en segundo plano, como la frecuencia con la que la aplicación sincroniza datos con la nube, o pueden tener un alcance más amplio, como cambiar el contenido y la presentación de la interfaz de usuario.

La forma recomendada de integrar configuraciones que pueda ajustar el usuario en la aplicación es utilizar la Biblioteca de Preference de AndroidX. Esta biblioteca administra la interfaz de usuario e interactúa con el almacenamiento de modo que solo se definan las configuraciones individuales que el usuario pueda ajustar. La biblioteca incluye un tema de Material que proporciona una experiencia del usuario coherente en todos los dispositivos y todas las versiones de SO.

Primeros pasos

El bloque de compilación básico de la Biblioteca de Preference es el elemento Preference. Una pantalla de configuración contiene una jerarquía de Preference. Puedes definir esta jerarquía como un recurso XML o compilar una jerarquía mediante código.

En las siguientes secciones, se describe la forma de compilar una pantalla de configuración simple con la Biblioteca de Preference de AndroidX.

Cómo crear una jerarquía

En el siguiente ejemplo, se muestra una jerarquía simple que se define mediante XML:

<PreferenceScreen
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <SwitchPreferenceCompat
        app:key="notifications"
        app:title="Enable message notifications"/>

    <Preference
        app:key="feedback"
        app:title="Send feedback"
        app:summary="Report technical issues or suggest new features"/>

</PreferenceScreen>

Esta jerarquía contiene dos elementos Preferences individuales: un elemento SwitchPreferenceCompat con el que el usuario puede activar o desactivar una opción, y un elemento Preference básico que no posee ningún widget.

Cuando se crea una jerarquía, cada elemento Preference debe tener una clave única.

Cómo ampliar la jerarquía

Para ampliar una jerarquía a partir de un atributo XML, crea un PreferenceFragmentCompat, anula onCreatePreferences() y agrega el recurso XML que deseas ampliar, tal como se indica en el siguiente ejemplo:

Kotlin

class MySettingsFragment : PreferenceFragmentCompat() {
    override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
        setPreferencesFromResource(R.xml.preferences, rootKey)
    }
}

Java

public class MySettingsFragment extends PreferenceFragmentCompat {
    @Override
    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
        setPreferencesFromResource(R.xml.preferences, rootKey);
    }
}

Posteriormente, podrás agregar este Fragment a tu Activity de la misma forma en que lo harías con otro Fragment:

Kotlin

class MySettingsActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        supportFragmentManager
                .beginTransaction()
                .replace(R.id.settings_container, MySettingsFragment())
                .commit()
    }
}

Java

public class MySettingsActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getSupportFragmentManager()
                .beginTransaction()
                .replace(R.id.settings_container, new MySettingsFragment())
                .commit();
    }
}