SharedPreferences sobreescribe otro valor

Tengo un problema con SharedPreferences Si quiero guardar dos valores diferentes. He intentado con este código:

 SharedPreferences sharedPref = getSherlockActivity().getPreferences(Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPref.edit(); editor.putInt(getString(R.string.SavedStartSilentHour), hour); editor.commit(); editor.putInt(getString(R.string.SavedStartSilentMinute), min); editor.commit(); // One editor.commit() is enough 

Si ejecuto este código, el primer valor se sobrescribe con el valor seccond. Si elimino la segunda parte el valor se guarda correctamente. ¿Porqué es eso?

Su código parece perfecto!

Podrías simplificar la cosa confiriendo todas las cosas después de todas las operaciones "puts". Aunque no creo que este podría ser su problema …

Sólo asegúrese de que los valores definidos de SavedStartSilentHour y SavedStartSilentMinutes xml estén correctamente definidos, es decir, si son los mismos, por supuesto, se sobrescribirán. (Esta es la única cosa que tiene sentido para mí teniendo en cuenta su código).

Déjame saber de tu progreso;)

Eliminar la primera llamada a

 editor.commit(); 

Y usted estará bien.

El problema es muy probablemente causado por volver a usar una clave de tal manera que la segunda asignación simplemente sobrescribe el valor de la misma clave.

Una forma de probar esta hipótesis es intentar usar claves simples que eliminen tal posibilidad, por ejemplo:

 editor.putInt("hour", hour); editor.putInt("min", min); 

Alternativamente, se puede adjuntar un depurador y se pueden comparar los resultados de getString(keyId) .

Si esto realmente "soluciona" el problema, asegúrese de que los recursos SavedStartSilentHour y SavedStartSilentMinute realmente evalúen a diferentes cadenas – inspeccione el archivo de recursos en sí.

  • ¿PreferenceFragment con el fondo transparente?
  • Weird SwitchPrefererence en el comportamiento de restablecimiento automático PreferenciaCategoría
  • android: using ListPreference and retrieving key string
  • Preferencia y comprobación de la casilla de verificación si está activada o desactivada
  • ¿Cómo obtener resultados de la intención lanzada desde la pantalla de preferencias?
  • Android switchpreference ¿cómo puedo configurar el valor predeterminado de la preferencia de conmutador?
  • ¿Cómo abrir o simular un clic en una preferencia de Android, creado con XML, mediante programación?
  • ¿Cuál es el nombre de archivo utilizado por defecto las preferencias compartidas?
  • Actualizar android PreferenceFragment
  • Preferencias de número en la actividad de preferencias en Android
  • Preferencias independientes para cada vista en una aplicación para Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.