Pregunta

Tengo una aplicación Android en el que tengo mis preferencias en un archivo XML, que trabaja muy bien. ahora quiero establecer una de las preferencias utilizando el código en lugar de mostrar toda la pantalla de preferencias, ¿cómo voy a ir haciendo esto?

¿Fue útil?

Solución

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

Para almacenar las preferencias entre las corridas de que la aplicación que tiene que hacer lo siguiente

  1. Crear un objeto SharedPreferences

    SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);
    

    Cadena N identifica sus preferencias y el segundo argumento es el modo que va a tener acceso a

  2. instancia de un objeto Editor

    SharedPreferences.Editor editor = settings.edit();
    

    Nota: no intente settings.editor.edit (), esto no va a hacer que un objeto persistente y el código de abajo no funciona

  3. Escribir sus preferencias para el buffer

    editor.put...(String, value)
    

    Hay numerosas funciones de venta, putString, putBoolean, etc. La cadena es la clave ( "versión", "buena racha") y el valor es el valor ( "1.5.2", true)

  4. Vaciar el búfer

    editor.commit();
    

    Esto escribe en realidad se pone a las preferencias. Si la aplicación se bloquea antes de esta línea a continuación, no se escribirán las preferencias. También hay un error documentado: commit () se supone que devolver un valor lógico que indica el éxito o el fracaso. Que yo sepa siempre devuelve falso.

Estas preferencias por almacenan en el teléfono y sólo se podrá acceder a la aplicación.

Hay más documentación aquí

Otros consejos

He intentado esto, pero no funcionó:

SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);

Tal vez puedas probar:

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);

Puede guardar algo en los SharedPreferences utilizando a continuación el código

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 preferencias:

public static String read(String valueKey, String valueDefault) {
    SharedPreferences prefs = PreferenceManager
            .getDefaultSharedPreferences(context);
   return prefs.getString(valueKey, valueDefault);
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top