【发布时间】:2016-02-20 13:26:07
【问题描述】:
我有一个“ArrayList> List_Data =new ArrayList>();”
但我的要求是将 List_Data 存储到 sharedpreference 中。请帮帮我。
【问题讨论】:
-
使用 gson 库,使用它来存储列表真的很容易
标签: android
我有一个“ArrayList> List_Data =new ArrayList>();”
但我的要求是将 List_Data 存储到 sharedpreference 中。请帮帮我。
【问题讨论】:
标签: android
将您的数组或对象转换为 JSON 并存储到共享首选项中
用于存储:
SharedPreferences db=PreferenceManager.getDefaultSharedPreferences(context);
Editor collection = db.edit();
Gson gson = new Gson();
String arrayList1 = gson.toJson(arrayList);
collection.putString(key, arrayList1);
collection.commit();
用于检索
SharedPreferences db=PreferenceManager.getDefaultSharedPreferences(context);
Gson gson = new Gson();
String arrayListString = db.getString(key, null);
Type type = new TypeToken<ArrayList<ArrayObject>>() {}.getType();
ArrayList<ArrayObject> arrayList = gson.fromJson(arrayListString, type);
【讨论】:
使用 Gson 或任何其他方法将您的对象序列化为 json 字符串,然后将此字符串存储在 SP 中。要获取此对象:获取字符串并将其反序列化为您的数组。
【讨论】:
仅当您想要保存的键值集合相对较少时,才尝试使用共享首选项
以下是如何将列表保存到共享偏好中
使用 gson 或您选择的任何其他库对其进行序列化
Gson gson = new Gson();
String serializedMapData = gson.toJson(mapList);
preferenceObj.edit().putString("key", mapList)
再次使用 gson 将其转换回对象
String mapListString= preferenceObj.getString("key");
List<Map<String, String>> map = gson.fromJson(string, List.class);
【讨论】: