我正在开发一个appengine连接的android项目。我的一个端点方法返回一个集合
return CollectionResponse.<MyData> builder().setItems(result).build();
当数据到达android时,我想将数据保存到SharedPreferences。这是一个两步过程:
CollectionResponseMyData
或至少List<MyData>
有没有人这样做过,不介意分享怎么做?
如果需要,澄清步骤1在数据到达时发生。第2步发生在需要数据的稍后时间。
答案 0 :(得分:0)
您的数据是json,因此您可以使用gson转换为字符串并返回json。 您需要这样做,因为您无法在SharedPreference上保存json格式。
public boolean saveJson(List<MyData> myData){
Gson gson = new Gson();
String json = gson.toJson(myData);
return saveMyData(json);
}
public List<MyData> getJson() {
Type listOfObjects = new TypeToken<List<MyData>>(){}.getType();
String json = restoreMyData();
Gson gson = new Gson();
List<MyData> myListData = gson.fromJson(json, listOfObjects);
return myListData;
}
public boolean saveMyData(String data) {
SharedPreferences settings = context.getSharedPreferences("PrefName", 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("MyKey", data);
return editor.commit();
}
public String restoreMyData() {
SharedPreferences settings = context.getSharedPreferences("PrefName", 0);
String data = settings.getString("MyKey", "default value, you can put null here");
return data;
}