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)
代码未编译,因此可能有一些小错误,但应该有效.