import android.preference.PreferenceManager;
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
// then you use
prefs.getBoolean("keystring", true);
Actualizar
Según las preferencias compartidas | Tutorial para desarrolladores de Android (Parte 13) de Sai Geetha MN,
Muchas aplicaciones pueden proporcionar una forma de capturar las preferencias del usuario en la configuración de una aplicación o actividad específica. Para respaldar esto, Android proporciona un conjunto simple de API.
Las preferencias son típicamente pares de valores de nombre. Se pueden almacenar como "Preferencias compartidas" en varias actividades en una aplicación (tenga en cuenta que actualmente no se puede compartir en todos los procesos). O puede ser algo que necesita ser almacenado específicamente para una actividad.
Preferencias compartidas: las preferencias compartidas pueden ser utilizadas por todos los componentes (actividades, servicios, etc.) de las aplicaciones.
Preferencias manejadas por la actividad: Estas preferencias solo pueden usarse dentro de la actividad particular y no pueden ser usadas por otros componentes de la aplicación.
Preferencias compartidas:
Las preferencias compartidas se gestionan con la ayuda del getSharedPreferences
método de la Context
clase. Las preferencias se almacenan en un archivo predeterminado (1) o puede especificar un nombre de archivo (2) para usarlo para referirse a las preferencias.
(1) La forma recomendada es utilizar el modo predeterminado, sin especificar el nombre del archivo
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
(2) Así es como obtiene la instancia cuando especifica el nombre del archivo
public static final String PREF_FILE_NAME = "PrefFile";
SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);
MODE_PRIVATE
es el modo operativo para las preferencias. Es el modo predeterminado y significa que solo la aplicación que llama accederá al archivo creado. Otros dos modos compatibles son MODE_WORLD_READABLE
y MODE_WORLD_WRITEABLE
. En MODE_WORLD_READABLE
otra aplicación puede leer el archivo creado pero no puede modificarlo. En el caso de MODE_WORLD_WRITEABLE
otras aplicaciones también tienen permisos de escritura para el archivo creado.
Finalmente, una vez que tenga la instancia de preferencias, así es como puede recuperar los valores almacenados de las preferencias:
int storedPreference = preferences.getInt("storedInt", 0);
Para almacenar valores en el archivo de preferencias SharedPreference.Editor
se debe utilizar el objeto. Editor
es una interfaz anidada en la SharedPreference
clase.
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
Editor también admite métodos como remove()
y clear()
para eliminar los valores de preferencia del archivo.
Preferencias de actividad:
Las preferencias compartidas pueden ser utilizadas por otros componentes de la aplicación. Pero si no necesita compartir las preferencias con otros componentes y desea tener preferencias privadas de actividad, puede hacerlo con la ayuda del getPreferences()
método de la actividad. El getPreference
método utiliza el getSharedPreferences()
método con el nombre de la clase de actividad para el nombre del archivo de preferencias.
El siguiente es el código para obtener preferencias
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
int storedPreference = preferences.getInt("storedInt", 0);
El código para almacenar valores también es el mismo que en el caso de las preferencias compartidas.
SharedPreferences preferences = getPreference(MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
También puede usar otros métodos como almacenar el estado de la actividad en la base de datos. Nota Android también contiene un paquete llamado android.preference
. El paquete define clases para implementar la interfaz de usuario de preferencias de la aplicación.
Para ver más ejemplos, consulte la publicación de almacenamiento de datos de Android en el sitio de desarrolladores.
package.prefs
pero no estoy seguro.Si no tiene acceso
getDefaultSharedPreferenes()
, puede usarlogetSharedPreferences(name, mode)
, solo tiene que pasar el nombre correcto.Android crea este nombre (¿posiblemente basado en el nombre del paquete de su proyecto?). Puede obtenerlo colocando el siguiente código en a
SettingsActivity
onCreate()
y viendo quépreferencesName
es.La cadena debería ser algo así
com.example.projectname_preferences
. Codifique eso en algún lugar de su proyecto, páselogetSharedPreferences()
y debería estar listo para comenzar.fuente
Declare estos métodos primero.
Luego llame a esto cuando quiera poner un pref:
llama a esto cuando quieras obtener un pref:
O puede usar este objeto https://github.com/kcochibili/TinyDB--Android-Shared-Preferences-Turbo que simplifica todo aún más
Ejemplo:
fuente
tener que pasar el contexto por todas partes me molesta mucho. el código se vuelve demasiado detallado e inmanejable. Hago esto en cada proyecto en su lugar ...
y configurarlo en la actividad principal crear
Además, todas las teclas de preferencia deben ser independientes del idioma, me sorprende que nadie haya mencionado eso.
ahora llámalo simplemente así en una línea de código
fuente
getApplicationContext()
si tiene una casilla de verificación y desea obtener su valor, es decir, verdadero / falso en cualquier archivo java--
Utilizar--
fuente
Actualizado 2019
Simplemente puedes usar la
PowerPreference
bibliotecahttps://github.com/AliEsaAssadi/Android-Power-Preference
Obtener instancia de preferencia compartida
Para obtener la instancia predeterminada solo necesita llamar
O si quieres un archivo de preferencia específico
Escribir datos:
Obteniendo datos
fuente
Intenta seguir el código fuente que funcionó para mí
fuente