SharedPreferences no funciona en todas las actividades
Estoy tratando de guardar algunos filtros / estado en una actividad, y luego utilizar esos datos en la siguiente actividad.
Estoy usando SharedPreferences, pero no funciona como lo esperaba.
- Cómo obtener algo útil de este registro ANR
- Android - ¿Es mala práctica tener múltiples preferencias compartidas?
- onSharedPreferenceChanged no se disparó todo el tiempo
- Android - sharedferences devuelve valor nulo
- ¿Es posible almacenar el objeto estático de la clase en la preferencia compartida?
public class FilterActivity extends Activity { private static final String TAG = FilterActivity.class.getName(); EditText distanceEditor; @Override public void onPause() { super.onPause(); SharedPreferences preferences = getSharedPreferences(PreferenceKey.FILTER_PREFERENCES_NAME, MODE_WORLD_READABLE); String distance = distanceEditor.getText().toString(); preferences.edit().putString(PreferenceKey.DISTANCE, distance); preferences.edit().commit(); Log.i(TAG, "Wrote max-distance=" + distance); Log.i(TAG, "Preferences contains distance=" + preferences.getString(PreferenceKey.DISTANCE, "FAIL")); } public static class PreferenceKey { public static final String FILTER_PREFERENCES_NAME = "FilterActivity:" + "Filter_Preference_File"; public static final String DISTANCE = "FilterActivity:" + "DISTANCE"; } }
Entonces, la Actividad que debería usar esta preferencia:
public class MapActivity extends MapActivity { @Override public void onResume() { super.onResume(); SharedPreferences preferences = getSharedPreferences(FilterActivity.PreferenceKey.FILTER_PREFERENCES_NAME, MODE_WORLD_READABLE); String maxDistance = preferences.getString(FilterActivity.PreferenceKey.DISTANCE, "FAIL"); Log.i(TAG, "Read max-distance=" + maxDistance); } }
Pero la salida que consigo es:
.FilterActivity( 4847): Wrote max-distance=99.9 .FilterActivity( 4847): Preferences contains distance=FAIL .MapActivity( 4847): Read max-distance=FAIL
¿Puede alguien decirme lo que estoy haciendo mal aquí?
Estoy desarrollando contra API Nivel-8.
- Cómo analizar JSON analizado para uso sin conexión
- SharedPreferences strage. getSharedPreferences no funciona
- Uso del editor de preferencias compartidas
- Cómo Android SharedPreferences guarda / almacena un objeto
- ¿Qué técnica de almacenamiento de datos Android utilizar?
- ¿Cuál es la diferencia entre las entradas y los valores de entrada en android listPreferences xml?
- Guardar SharedPreferences archivos en directorio personalizado o obtener predeterminado SharedPreferences dir
- Guardar un arraylist de cadenas a las preferencias compartidas
En las dos líneas siguientes,
preferences.edit().putString(PreferenceKey.DISTANCE, distance); preferences.edit().commit();
dos diferentes SharedPreferences.Editor
s están siendo devueltos. Por lo tanto, el valor no está siendo comprometido. En su lugar, tiene que utilizar:
SharedPreferences.Editor spe = preferences.edit(); spe.putString(PreferenceKey.DISTANCE, distance); spe.commit();
- HttpURLConnections persistentes en Android
- Actualizar el widget de la aplicación en un clic en android