usar shared_prefs getint getall example como android android-activity sharedpreferences

android - shared_prefs - SharedPreferences Borrar/Guardar



sharedpreferences android example (5)

Eliminando todas las preferencias:

SharedPreferences mPrefs_delete = context.getSharedPreferences(GeneralFunctions.SETTING_SINGLE_MASTER_CHILD, Context.MODE_PRIVATE); haredPreferences.Editor editor_delete = mPrefs_delete.edit(); editor_delete.clear().commit();

Estoy intentando hacer un comprobador y quiero guardar un valor en SharedPreferences. Pero no estoy seguro de si funciona

Esto lo que hago para guardar el valor es: *

SharedPreferences prefs = getSharedPreferences("PREFERENCE", MODE_PRIVATE); boolean firstrun = prefs.getBoolean("firstrun", true); db = openOrCreateDatabase("value.db", Context.MODE_PRIVATE, null); // optional CursorFactory if (firstrun) { SharedPreferences.Editor editor = prefs.edit(); db.execSQL("CREATE TABLE startValue (ID Integer Primary Key, myValue Integer)"); db.execSQL("INSERT INTO startValue (myValue) VALUES (2)"); editor.putBoolean("firstrun", false); editor.apply(); } // Save the state getSharedPreferences("PREFERENCE", MODE_PRIVATE) .edit() .putBoolean("firstrun", false) .commit();

Y para borrar la preferencia de otra actividad es:

try{ db = openOrCreateDatabase("value.db", Context.MODE_PRIVATE, null); // optional CursorFactory db.execSQL("DROP TABLE IF EXISTS startValue"); db.close(); SharedPreferences preferences = getPreferences(0); SharedPreferences.Editor editor = preferences.edit(); editor.remove("firstrun"); editor.clear(); editor.commit(); this.finish(); } catch(SQLException ex) { //catch error here }

Problema

Pero cuando estoy probando, veo que no está borrando las preferencias. ¿Estoy haciendo algo mal o?


No estás usando las mismas preferencias. Tómese un tiempo para leer http://developer.android.com/reference/android/app/Activity.html

En tu primera actividad estás utilizando:

SharedPreferences prefs = getSharedPreferences("PREFERENCE", MODE_PRIVATE);

Y en la otra actividad de compensación solo estás usando:

SharedPreferences preferences = getPreferences(0);

Leyendo los documentos:

Recupere un objeto SharedPreferences para acceder a las preferencias que son privadas para esta actividad. Esto simplemente llama al método subyacente getSharedPreferences (String, int) pasando el nombre de clase de esta actividad como el nombre de las preferencias.

Debe usar el mismo nombre de preferencia en ambas actividades. Así que en tu segunda actividad, donde haces la limpieza solo usa

SharedPreferences preferences = getSharedPreferences("PREFERENCE", MODE_PRIVATE);


Para borrar SharedPreferences usa esto

SharedPreferences preferences = getSharedPreferences("PREFERENCE", Context.MODE_PRIVATE); SharedPreferences.Editor editor = preferences.edit(); editor.clear(); editor.commit();

Espero que esto te haya ayudado.


Simplemente puedes:

getSharedPreferences("PREFERENCE", 0).edit().clear().commit();


// Guardar cadena en SharedPreferences

public static void saveStringToSharedPreferences(Context mContext, String key, String value) { if(mContext != null) { SharedPreferences mSharedPreferences = mContext.getSharedPreferences("SHARED_PREFERENCES", 0); if(mSharedPreferences != null) mSharedPreferences.edit().putString(key, value).commit(); } }

// leer cadena desde SharedPreferences

public static String readStringFromSharedPreferences(Context mContext, String key) { if(mContext != null) { SharedPreferences mSharedPreferences = mContext.getSharedPreferences("SHARED_PREFERENCES", 0); if(mSharedPreferences != null) return mSharedPreferences.getString(key, null); } return null; }

// eliminar de SharedPreferences

public static void removeFromSharedPreferences(Context mContext, String key) { if (mContext != null) { SharedPreferences mSharedPreferences = mContext.getSharedPreferences(Constants.SHARED_PREFERENCES_NAME, 0); if (mSharedPreferences != null) mSharedPreferences.edit().remove(key).commit(); } }