[英]Android:how to store and retrieve Hashmap data in sharedpreferences?
我想在內部存儲中存儲鍵和值對等一些數據。 所以我使用HashMap來存儲密鑰,值對。但是我沒有足夠的解決方案來存儲和檢索這個HashMap到共享偏好中。 請給我一些解決方案。
我把我的代碼放在下面:
HashMap<String, String> MapListMesasges = new HashMap<String, String>();
MapListMesasges.put(FromName, message.getBody());
preferences = mActivity.getSharedPreferences(
SharePreference_messages_history_name,
Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
for (Entry<String, String> entry : MapListMesasges
.entrySet()) {
editor.putString(entry.getKey(), entry.getValue());
}
editor.commit();
並從Sharedprefernces檢索數據:
preferences = mActivity.getSharedPreferences(
SharePreference_messages_history_name, Context.MODE_PRIVATE);
for (Entry<String, ?> entry : preferences.getAll().entrySet()) {
MapListMesasges.put(entry.getKey(), entry.getValue().toString());
}
我還將在適配器中存儲hashmap並設置為listview。 我的主要目的是將數據存儲和檢索到共享偏好中,並將數據顯示到listview中。
提前致謝。
在Preferences中存儲HashMap的最簡單方法是將其轉換為字符串並存儲它。
在Otherside獲取該字符串將其轉換為HashMap並享受。
要將字符串轉換為HashMap,反之亦然,請檢查此鏈接。
您可以使用json進行解決方案。
例如:
**JSON**
{
[
"name1","message1",
"name2","message2"
]
}
使用一些密鑰存儲整個json字符串並使用相同的密鑰進行檢索。 只需要解析/創建JSON。 您可以使用GSON lib進行JSON創建/解析
像你所描述的那樣進行操作是特別的,這就是SQLite 。 但是如果你真的想將它們存儲在SharedPreferences中,你就可以做到。 您的解決方案幾乎可行 您只需要存儲密鑰。
StringBuilder b = new StringBuilder();
for (Entry<String, String> entry : MapListMesasges.entrySet()) {
editor.putString(entry.getKey(), entry.getValue());
if(b.length() != 0){
b.append(",");
}
b.append(entry.getKey());
}
editor.putString("KEY_FOR_PREF_KEYS",b.toString());
並檢索數據使用此
String[] keys = preferences.getString("KEY_FOR_PREF_KEYS","").split(",");
for (int i = 0; i < keys.length; i++) {
MapListMesasges.put(keys[i], preferences.getString(keys[i]));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.