Sunteți pe pagina 1din 2

Preferencias

Las preferencias permiten crear pantallas especficas dedicadas a la creacin y gestin de las
preferencias de un usuario en una aplicacin o, de forma global, en el dispositivo.

Desde la versin 3.0 de Android, debe utilizar la clase PreferenceFragment para crear las pantallas de
preferencias de una aplicacin.

Las preferencias creadas mediante la clase PreferenceFragment se guardarn automticamente en


las SharedPreferences (vase el captulo Persistencia de datos - SharedPreferences).

Para obtener las SharedPreferences, invoque al mtodo getDefaultSharedPreferences.

Para crear una pantalla de preferencias, dispone de varios componentes. Cada componente tiene su
contexto de uso:

Casilla de activacin/Switcher: utilice este componente para las opciones que slo tengan
dos estados (activo o inactivo).

Seleccin mltiple: utilice este componente cuando el usuario deba elegir una opcin entre
varias posibles.

Slider: utilice este componente cuando el usuario deba elegir un valor entre un rango de
valores posibles.

Para crear una pantalla que represente las preferencias de una aplicacin, comience creando una
carpeta llamada xml en los recursos de la aplicacin. En efecto, la carpeta xml es la ubicacin natural
de las interfaces de preferencias.

Cree un archivo que represente una interfaz de preferencias:

<?xml version="1.0" encoding="utf-8"?>


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

<PreferenceCategory android:title="@string/notification" >


<SwitchPreference
android:key="checkbox_preference"
android:title="@string/enable_notification" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/data" >
<CheckBoxPreference
android:summary="@string/save_data_summary"
android:title="@string/save_data_title" />
</PreferenceCategory>

</PreferenceScreen>

Una pantalla que representa una interfaz de preferencias siempre comienza con la
etiquetaPreferenceScreen.

Puede anidar varias etiquetas PreferenceScreen para obtener varias pantallas de preferencias
anidadas.

Cada seccin distinta de una interfaz de preferencias empieza con la etiqueta PreferenceCategory.
Cada categora puede contener uno o varios elementos.

El ejemplo anterior tiene dos categoras:

La primera contiene un Switcher.


La segunda contiene una casilla de activacin.

Todos los elementos que pueden formar parte de una pantalla de preferencias tienen un nombre
que termina por Preference (SwitchPreference, CheckBoxPreference...).

Modifique la actividad principal para integrar el fragment que representa la pantalla de


preferencias:

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(android.
R.id.content, new MyPreferenceFragment()).commit();
}

public static class MyPreferenceFragment extends


PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preference_screen);
}
}

En el mtodo onCreate, la insercin del fragment se realiza siguiendo los siguientes pasos:

Se obtiene una instancia de la clase FragmentManager, para interactuar con fragments.

Se invoca al mtodo beginTransaction, que permite comenzar una serie de operaciones con un
fragment.

Se invoca al mtodo replace, que permite integrar la clase personalizada


(MyPreferenceFragment) en la interfaz como fragment principal.

Se invoca al mtodo commit, que valida todas modificaciones realizadas en los pasos
anteriores.

Despus, cree una clase que herede de la clase PreferenceFragment y aada el fragment
declarado en el archivo XML.

Con lo que obtendr:

S-ar putea să vă placă și