2010-08-31 12 views
7

¿Alguien puede aclararme sobre las Preferencias Compartidas en Android? ¿Cómo puedo establecer una condición para mostrar un "Mensaje de alerta" solo una vez cuando la Actividad se carga inicialmente en la Aplicación?¿Qué es SharedPreferences en Android?

¿Cómo se hace al usar SharedPreferences?

Thsnks, John

Respuesta

6

Es completamente por coincidencia, yo juro , que blogged about this hoy :)

SharedPreferences settings = this.getSharedPreferences("MyApp",0); 
boolean firstrun=settings.getBoolean("firstrun",true); 
if (firstrun) { 
    SharedPreferences.Editor e = settings.edit(); 
    e.putBoolean("firstrun",false); 
    e.commit(); 
    // Do something here that you only want to happen the first time 
} 
+0

Hola vmlinuz muchas gracias por su respuesta, me dieron una buena idea breve regardiing lo que debía hacer a continuación. Sólo tenía una duda: - "¿Puede decirme exactamente qué (" MyApp ", 0) en la primera línea significa? Gracias, david –

+0

David (o John?)," MyApp "es un nombre de archivo arbitrario - usted puede tener más de un archivo de preferencias para una aplicación, y el archivo puede ser utilizado por más de una parte de la aplicación a la vez, por lo que el nombre del archivo es un identificador. El 0 es un modo para el archivo, y probablemente solo quiera déjalo en 0 ... – vmlinuz

+0

Gracias por la explicación vmlinuz –

1
SharedPreferences sp = context.getSharedPreferences("myApp",0); 
boolean showAlert = sp.getBoolean("Alert",true); //defaults to true if no value set 
//Show alert if true 
sp.setBoolean("Alert",false); //set to false 
1

Si sólo desea crear su cuadro de diálogo una vez cuando se instala la aplicación puede utilizar la siguiente junto con el código de seguridad. Esto se establecerá por primera vez y no se cargarán todos los tiempos posteriores.

/* Loading default preferences the first time application is run */ 
     PreferenceManager.setDefaultValues(getApplicationContext(), 
       R.xml.preference, false); 

Se puede establecer un valor bool en su preference.xml y que sea falsa en onCreate(), con el fin de no repetir el AlertDialog nuevo.

Cuestiones relacionadas