Android - ¿Cómo establecer una preferencia en Código
-
23-08-2019 - |
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?
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
-
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
-
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
-
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)
-
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);
}