para - manual de programacion android pdf
Cómo verificar si SharedPreferences existe o no (3)
Estoy comprobando de esta manera si el archivo existe, pero necesito ir más allá, necesito saber si hay uno en específico, ¿hay alguna manera?
File f = new File("/data/data/com.eventrid.scanner/shared_prefs/Eventrid.xml");
if (f.exists()){
}
else{
}
Bueno, uno podría hacer:
SharedPreferences sharedPrefs = getSharedPreferences("sp_name", MODE_PRIVATE);
SharedPreferences.Editor ed;
if(!sharedPrefs.contains("initialized")){
ed = sharedPrefs.edit();
//Indicate that the default shared prefs have been set
ed.putBoolean("initialized", true);
//Set some default shared pref
ed.putString("myDefString", "wowsaBowsa");
ed.commit();
}
Otra solución:
Si conoce el número exacto de preferencias que tiene, puede:
public void isPreferencesSet(Context context){
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
return (sharedPreferences.getAll().size() == exactNumberOfPreferences);
}
Esto funciona porque el archivo de preferencias almacenado en /data/data/myApp/shared_prefs/myApp_prefrences.xml contiene un par de valores de preferencia solo si se ha establecido su valor.
SharedPreferences
tiene un método de SharedPreferences
contains(String key)
, que se puede usar para verificar si existe una entrada con la clave dada.
http://developer.android.com/reference/android/content/SharedPreferences.html