Android 存储:SharePreferences存储List<Map<String,Object>>类型数组
Posted kaolagirl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 存储:SharePreferences存储List<Map<String,Object>>类型数组相关的知识,希望对你有一定的参考价值。
建一个ToolUtils工具类,然后在里面分别写存和取的逻辑方法
public class ToolUtils {
/**
* setLeftList 设置缓存,存数据
* @param context
* @param key
* @param list
* @author wang 8/31
*/
public static void setLeftList(Context context, String key,List<Map<String,Object>> list){
JSONArray mJsonArray = new JSONArray();
for(int i=0;i<list.size();i++){
Map<String,Object> itemMap = list.get(i);
Iterator<Map.Entry<String,Object>> iterator = itemMap.entrySet().iterator();
JSONObject object = new JSONObject();
while (iterator.hasNext()){
Map.Entry<String,Object> entry = iterator.next();
try {
object.put(entry.getKey(),entry.getValue());
}catch (JSONException je){
je.printStackTrace();
}
}
mJsonArray.put(object);
}
SharedPreferences sharedPreferences = context.getSharedPreferences(key,context.MODE_PRIVATE);
SharedPreferences.Editor shareEditor = sharedPreferences.edit();
shareEditor.putString(key,mJsonArray.toString());
shareEditor.commit();
}
/**
* getLeftList 取数据
* @param context
* @param key
* @return
* @author wang 8/31
*/
public static List<Map<String,Object>> getLeftList(Context context,String key){
List<Map<String, Object>> list = new ArrayList<>();
SharedPreferences sharedPreferences = context.getSharedPreferences(key,context.MODE_PRIVATE);
String result = sharedPreferences.getString(key,"");
try{
JSONArray array = new JSONArray(result);
for (int i=0;i<array.length();i++){
JSONObject jsonItem = array.getJSONObject(i);
Map<String,Object> mapItem = new HashMap<>();
JSONArray names = jsonItem.names();
if(names !=null){
for(int j=0;j<names.length();j++){
String name = names.getString(j);
String value = jsonItem.getString(name);
mapItem.put(name,value);
}
}
list.add(mapItem);
}
}catch (JSONException je){
je.printStackTrace();
}
return list;
}
}
使用
ToolUtils.setLeftList(getContext(), "leftList", left_list); //存数据
List<Map<String,Object>> list = ToolUtils.getLeftList(getContext(),"leftList"); //从缓存中取数据
以上是关于Android 存储:SharePreferences存储List<Map<String,Object>>类型数组的主要内容,如果未能解决你的问题,请参考以下文章
Android 文件管理分区存储 ( 修改与删除图片文件 )