【发布时间】:2015-08-19 15:02:39
【问题描述】:
我需要创建一个包含最近 5 个通话日期的数组。
我知道我必须将日期保存在数组中,但我不知道如何重新排序其他记录以将最后调用日期保留为第一条记录。并且始终只维护 5 条记录
目标是保存最后一个调用字符串并添加到数组中,然后我重新排序并只维护 5 条记录,然后我使用 FlexJson 创建一个字符串并保存在 sharedpreferences 上。有人有这个完整的流程吗?
这是我正在做的,但到处都抛出错误:
保存
SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss dd-MM-yyyy", Locale.getDefault());
Calendar calendar = Calendar.getInstance();
String currentDateTimeString = df.format(calendar.getTime());
List<String> textList = new ArrayList<>();
JSONSerializer ser = new JSONSerializer();
textList.add(currentDateTimeString);
String jsonText = ser.deepSerialize(textList);
editor.putString("lastCall", jsonText);
editor.commit();
阅读:
String lastCall = callLogPreferences.getString("lastCall", null);
JSONDeserializer<List<String>> der = new JSONDeserializer<>();
List<String> textList = der.deserialize(lastCall);
我正在使用 FlexJson:GSON and InstanceCreator issue
它不是从字符串转换为数组列表
【问题讨论】:
-
嗨@GuilhE,如果您检查我的问题上的链接,您会看到 FlexJson 不需要 InstanceCreator,我使用了 GSON,但它抛出了那个错误。
-
我发现 Gson 更直接。你能发布你的 Gson 序列化代码和错误吗?
-
嗨@GuilhE我没有,我在一些stackoverflow主题中看到过。你能告诉我一个答案,如何将一个数组列表变成字符串,然后用 GSON 将字符串变成数组列表吗?谢谢
-
当然可以,看我的回答。
标签: java android arrays sharedpreferences flexjson