如何存储ArrayList& lt; HashMap& lt; String,String& gt;>在SharedPreferences中? [英] How can I store an ArrayList<HashMap<String, String>> in SharedPreferences?

查看:71
本文介绍了如何存储ArrayList& lt; HashMap& lt; String,String& gt;>在SharedPreferences中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望在SharedPreferences中存储一个包含Hashmap的ArrayList.我该怎么办?

I wish to store an ArrayList which contains Hashmap inside SharedPreferences. How can I do this?

推荐答案

您可以将集合转换为json并将其存储在共享首选项中.每当需要获取数据时,只需获取字符串并将JSON转换回您的集合即可.

You can convert your collection into a json and store it in shared preference. Whenever you need to get the data, just get the string and convert the JSON back into your collection.

//converting the collection into a JSON
JSONArray result= new JSONArray(collection);
SharedPreferences pref = getApplicationContext().getSharedPreferences(PREF_NAME, 0);

//Storing the string in pref file
SharedPreferences.Editor prefEditor = pref.edit();
prefEditor.putString(KEY, result.toString());
prefEditor.commit();

//Getting the JSON from pref
String storedCollection = pref.getString(KEY, null);
//Parse the string to populate your collection.
ArrayList<HashMap<String, String>> collection = new ArrayList<HashMap<String, String>>();
try {
    JSONArray array = new JSONArray(storedCollection);
    HashMap<String, String> item = null;
    for(int i =0; i<array.length(); i++){
        String obj = (String) array.get(i);
        JSONObject ary = new JSONObject(obj);
        Iterator<String> it = ary.keys();
        item = new HashMap<String, String>();
        while(it.hasNext()){
            String key = it.next();
            item.put(key, (String)ary.get(key));
        }
        collection.add(item);
    }
} catch (JSONException e) {
    Log.e(TAG, "while parsing", e);
}

JSON应该看起来像这样:

The JSON should look something like this:

[
  "{test13=yeah3, test12=yeah2, test11=yeah1}",
  "{test23=yeah3, test22=yeah2, test21=yeah1}",
  "{test32=yeah2, test31=yeah1, test33=yeah3}"
]

这篇关于如何存储ArrayList&amp; lt; HashMap&amp; lt; String,String&amp; gt;&gt;在SharedPreferences中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆