studio programacion nombre móviles libro desarrollo curso cambiar aplicaciones activity android

nombre - manual de programacion android pdf



Android: cómo establecer una preferencia en el código (3)

Asumo por preferencias que se refiere a las preferencias de su aplicación y no a la configuración del teléfono Android.

Para almacenar las preferencias entre las ejecuciones de su aplicación, debe hacer lo siguiente

  1. Crear un objeto SharedPreferences

    SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);

    String n identifica sus preferencias y el segundo argumento es el modo al que se accederá

  2. Crear una instancia de un objeto Editor

    SharedPreferences.Editor editor = settings.edit();

    Nota: no intente settings.editor.edit (), esto no hará un objeto persistente y el código siguiente no funcionará

  3. Escribe tus preferencias al buffer

    editor.put...(String, value)

    Hay numerosas funciones put, putString, putBoolean, etc. La cadena es la clave ("versión", "buena ejecución") y el valor es el valor ("1.5.2", verdadero)

  4. Vaciar el buffer

    editor.commit();

    Esto realmente escribe que pongas a las preferencias. Si su aplicación falla antes de esta línea, las preferencias no se escribirán. También hay un error documentado: se supone que commit () devuelve un valor booleano que indica éxito o falla. La última vez que lo revisé siempre devolvía falso.

Estas preferencias se almacenarán en el teléfono y solo serán accesibles para su aplicación.

Más documentación está aquí

Tengo una aplicación de Android en la que tengo mis preferencias en un archivo xml, que funciona bien. Ahora quiero establecer una de las preferencias usando el código en lugar de mostrar toda la pantalla de preferencias, ¿cómo voy a hacer esto?


Intenté esto pero no funcionó:

SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);

Pruebe esto en su lugar:

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);


Puede guardar algo en las preferencias compartidas usando el código siguiente

public static void save(String valueKey, String value) { SharedPreferences prefs = PreferenceManager .getDefaultSharedPreferences(context); SharedPreferences.Editor edit = prefs.edit(); edit.putString(valueKey, value); edit.commit(); }

Para leer las preferencias:

public static String read(String valueKey, String valueDefault) { SharedPreferences prefs = PreferenceManager .getDefaultSharedPreferences(context); return prefs.getString(valueKey, valueDefault); }