Equivalente de Android de NSUserDefaults en iOS


103

Me gustaría guardar algunos datos simples. En el iPhone, puedo hacerlo con NSUserDefaultsObjective-C.

¿Cuál es el comando similar aquí en Android?

Solo estoy guardando algunas variables, para reutilizarlas siempre que la aplicación esté instalada. No quiero usar una base de datos complicada solo para hacer eso.

Respuestas:


210

Esta es la solución más simple que he encontrado:

//--Init
int myvar = 12;


//--SAVE Data
SharedPreferences preferences = context.getSharedPreferences("MyPreferences", Context.MODE_PRIVATE);  
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("var1", myvar);
editor.commit();


//--READ data       
myvar = preferences.getInt("var1", 0);  

Donde 'contexto' es el contexto actual (por ejemplo, en una subclase de actividad podría ser este ).


este es el camino a seguir para almacenar cosas muy simples, es simple y directo al grano
smith324

Arreglé el error en el código (llamaba a las getPreferences inexistentes, no a las getSharedPreferences).
Ben Clayton

14
Actualización 2015: Android recomienda el uso de apply () ahora sobre commit () porque apply () opera en un hilo en segundo plano en lugar de almacenar los datos persistentes inmediatamente y posiblemente bloquear el hilo principal.
AppsIntheParkNYC

¿Hay alguna forma de acceder a estas SharedPreferences desde el código jni?
IgorGanapolsky

2
Para obtener el 'contexto' desde adentro AppCompatActivity, puede usargetApplicationContext()
Brainware
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.