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(); } }