How can I store a HashMap <Integer, String> in android using shared preferences?
Solution 1
Hey I found a way in the end :)
I just changed the HashMap I had to format and then did the following to save the contents:
SharedPreferences.Editor editor = getSharedPreferences(PREFS_NAME, 0).edit();
for( Entry entry : backUpCurency_values.entrySet() )
editor.putString( entry.getKey(), entry.getValue() );
editor.commit();
and the following to retrieve the HashpMap:
SharedPreferences prefs = getSharedPreferences(PREFS_NAME, 0);
for( Entry entry : prefs.getAll().entrySet() )
backUpCurency_values.put( entry.getKey(), entry.getValue().toString() );
Solution 2
There is no support for any HashMap
in SharedPreferences
. You can treat a whole SharedPreferences
as being a bit like a HashMap
, but it is not a HashMap
, and you cannot store a HashMap
in an individual preference.
You are welcome to convert your HashMap
into a String
that could be stored in a SharedPreferences
value, such as by converting it into JSON.
Zyzz
Updated on June 28, 2022Comments
-
Zyzz about 2 years
I have created a HashMap in the following way:
HashMap<Integer, String> buttons = new HashMap<Integer, String>();
I need this to remain in this format, however every answer to this solution I have seen only works for
HashMap<String, String>
Thanks