如何在Android上存储HashMap?

Rom*_*man 5 storage android hashmap

所以,我正试图HashMap在Android 上存储.我认为使用内部存储更好,但我不明白如何保存 HashMap然后再读它.有人可以解释一下如何正确地做到这一点吗?

有些计数器有自己的名称和值.我想在启动一些活动时加载它们,使用它们(更改,删除,添加新的),然后保存这些数据以供下次使用.现在我使用HashMap,因为它很容易删除/添加值.

HashMap<String, Integer> counters;
Run Code Online (Sandbox Code Playgroud)

jee*_*eet 12

SharedPreferences还将键值对中的数据存储为hashmap,因此为什么不从hashmap获取所有键值并将其存储到map中,因为它:

SharedPreferences pref= getContext().getSharedPreferences("Your_Shared_Prefs"), 
                                                           Context.MODE_PRIVATE);
SharedPreferences.Editor editor= pref.edit();

    for (String s : map.keySet()) {
        editor.putString(s, map.get(s));
    }
Run Code Online (Sandbox Code Playgroud)

要获取值,您可以使用:

public abstract Map<String, ?> getAll ()
Run Code Online (Sandbox Code Playgroud)

http://developer.android.com/reference/android/content/SharedPreferences.html#getAll%28%29

使用:

SharedPreferences pref= getContext().getSharedPreferences("Your_Shared_Prefs"), 
                                                           Context.MODE_PRIVATE);
HashMap<String, String> map= HashMap<String, String> pref.getAll();
for (String s : map.keySet()) {
        String value=map.get(s);
        //Use Value
    }
Run Code Online (Sandbox Code Playgroud)

代码未编译,因此可能有一些小错误,但应该有效.