¿Cómo puedo almacenar un HashMap <Integer, String> en android usando preferencias compartidas?

He creado un HashMap de la siguiente manera:

HashMap<Integer, String> buttons = new HashMap<Integer, String>();

Necesito esto para permanecer en este formato, sin embargo, cada respuesta a esta solución que he visto sólo funciona para HashMap<String, String>

Gracias

He encontrado una manera al final 🙂

Acabo de cambiar el HashMap tuve que formatear y luego hizo lo siguiente para guardar el contenido:

 SharedPreferences.Editor editor = getSharedPreferences(PREFS_NAME, 0).edit(); for( Entry entry : backUpCurency_values.entrySet() ) editor.putString( entry.getKey(), entry.getValue() ); editor.commit(); 

y lo siguiente para recuperar el HashpMap:

 SharedPreferences prefs = getSharedPreferences(PREFS_NAME, 0); for( Entry entry : prefs.getAll().entrySet() ) backUpCurency_values.put( entry.getKey(), entry.getValue().toString() ); 

No hay soporte para cualquier HashMap en SharedPreferences . Puedes tratar un SharedPreferences completo como un poco como un HashMap , pero no es un HashMap , y no puedes almacenar un HashMap en una preferencia individual.

Le invitamos a convertir su HashMap en una String que podría almacenarse en un valor de SharedPreferences , como convertirlo en JSON.

La conversión a JSON (como señala CommonsWare) es una opción. Alternativamente, la forma en que lo hice (ya que no estoy familiarizado con JSON) es serializarlo con la clase ObjectSerializer de Apache (que se encuentra aquí: ObjectSerializer.java ).

Simplemente llame al método de serialización cuando desee almacenarlo y deserializarlo cuando desee convertirlo en un Mapa.

  • Cómo poner / obtener varios JSONObjects a JSONArray?
  • Las asignaciones de preferencias compartidas de Android no persisten entre sesiones de emulador
  • Cómo lograr el concepto NSUserDefaults en Android
  • ¿Cómo puedo almacenar una Matriz de Integer en SharedPreferences en Android?
  • Perder algunos valores usando getStringSet y putStringSet
  • Java.lang.IllegalStateException: Orca SharedPreferences utilizado antes de inicializado
  • Guardar un arraylist de cadenas a las preferencias compartidas
  • Predeterminado Preferencias compartidas me dan valores incorrectos en Service
  • Obtenga el valor de preferencias compartidas de Android en la clase activity / normal
  • ¿Cuándo se creó por primera vez un archivo de preferencias compartidas?
  • ¿Preferencias compartidas? Javax.crypto.BadPaddingException: bloque de pad corrompido sólo en algunos dispositivos
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.