write que getpreferences from data code and android checkbox state sharedpreferences

android - que - sharedpreferences editor



Android-SharedPreference.getBoolean recuperando falso incluso si estoy almacenando verdadero? (2)

Nunca llamas a commit() en tu editor , creo :) Prueba esto:

public void saveState() { SharedPreferences sp = getPreferences(Context.MODE_PRIVATE); SharedPreferences.Editor editor = sp.edit(); for(int i = 0; i < itemCheck.length; i++) { Boolean b = itemCheck[i]; Log.e(TAG, b.toString()); editor.putBoolean(i+"", itemCheck[i]); } editor.commit(); }

Estoy utilizando SharedPreference para almacenar el estado de las casillas de verificación, pero incluso estoy almacenando verdadero en él, todavía está recuperando falso.

Aquí está mi código:

@Override public void onPause() { super.onPause(); saveState(); } @Override public void onResume() { super.onResume(); loadState(); } @Override public void onRestart() { super.onRestart(); loadState(); } public void saveState() { SharedPreferences sp = getPreferences(Context.MODE_PRIVATE); SharedPreferences.Editor editor = sp.edit(); for(int i = 0; i < itemCheck.length; i++) { Boolean b = itemCheck[i]; Log.e(TAG, b.toString()); editor.putBoolean(i+"", itemCheck[i]); } } public void loadState() { SharedPreferences sp = getPreferences(Context.MODE_PRIVATE); for(int i = 0; i < itemCheck.length; i++) { itemCheck[i] = sp.getBoolean(i+"", false); Boolean b = itemCheck[i]; Log.e(TAG, b.toString()); } for(int i = 0; i < itemCheck.length; i++) { lv.setItemChecked(i, itemCheck[i]); } }

Me da falso porque establezco falso como un valor predeterminado en getBoolean que debería devolverse en ausencia de una clave predefinida. Por favor, eche un vistazo y dígame qué hice mal. Gracias


use editor.commit() después de editor.putBoolean(i+"", itemCheck[i]);