【发布时间】:2018-07-03 13:15:03
【问题描述】:
我想以共享首选项存储多边形对象的 ArrayList。有人可以帮我解决这个问题吗?
要保存列表:
public void savePolygonObjects(Context context){
SharedPreferences mPrefs = context.getSharedPreferences("MyPref", context.MODE_PRIVATE);
SharedPreferences.Editor prefsEditor = mPrefs.edit();
Gson gson = new Gson();
String json = gson.toJson(polygonArrayList);
prefsEditor.putString("myJson", json);
prefsEditor.commit();
}
检索列表:
SharedPreferences mPrefs = getSharedPreferences("MyPref",
getApplicationContext().MODE_PRIVATE);
Gson gson = new Gson();
String json = mPrefs.getString("myJson", "");
JsonParser parser = new JsonParser();
JsonArray array = parser.parse(json).getAsJsonArray();
for(int i=0; i< array.size(); i++){
polygonArrayList.add(gson.fromJson(array.get(i), Polygon.class));
}
【问题讨论】:
-
显示到目前为止你尝试过的代码。
-
唯一的方法是将你的数组转换成 JSON 字符串并保存在共享首选项中。
-
它给了我错误:java.lang.IllegalArgumentException: class gs declarations multiple JSON fields named d @LucaNicoletti
-
发布你的做法
-
上面的代码给了我一个异常,说不能将对象转换为 json。它在 gson.toJson(list) @LucaNicoletti 处给出错误