我试图将Gson用于共享首选项 首先,我使用此方法将对象列表转换为Json并将其保存在共享首选项中并正常工作
public Builder add(String key, List value) {
Gson gson = new Gson();
editor.putString(key, gson.toJson(value));
return this;
}
其次,我使用此方法检索列表
public <T> List<T> get(String key, Class<T> classType) {
if (preferences.contains(key)) {
Gson gson = new Gson();
Type type = new TypeToken<List<classType>>() {
}.getType();
return gson.fromJson(get(key, ""), type);
} else {
return null;
}
}
我希望这个方法能够检索列表,例如当我将它列为“未知类”时。
如何做到这一点?
答案 0 :(得分:-1)
像这样保存列表
public static void saveData(Context context, ArrayList<YOUR MODEL> model) {
String s = new Gson().toJson(model);
SharedPreferences preferences = context.getSharedPreferences(*your preference name*, Context.MODE_PRIVATE);
preferences.edit().putString(*key*, s).apply();
}
获取此类列表
public static ArrayList<YOUR MODEL> getData(Context context) {
SharedPreferences preferences = context.getSharedPreferences(*your preference name*, Context.MODE_PRIVATE);
String s = preferences.getString(*key*, "");
Gson gson = new Gson();
Type type = new TypeToken<ArrayList<YOUR MODEL>>() {
}.getType();
ArrayList<YOUR MODEL> list = gson.fromJson(s, type);
return list;
}
希望这就是你想要的!