How can I store a HashMap in android using shared preferences?

后端 未结 3 1291
渐次进展
渐次进展 2020-12-18 12:56

I have created a HashMap in the following way:

HashMap buttons = new HashMap();

I need this to rem

相关标签:
3条回答
  • 2020-12-18 13:10

    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.

    0 讨论(0)
  • 2020-12-18 13:27

    Converting it to JSON (as CommonsWare pointed out) is an option. Alternatively, the way I did it (since I'm not familiar with JSON) is to serialize it with Apache's ObjectSerializer class (found here: ObjectSerializer.java).

    Simply call the serialize method when you want to store it and deserialize when you want to turn it back into a Map.

    0 讨论(0)
  • 2020-12-18 13:31

    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() );
    
    0 讨论(0)
提交回复
热议问题