在不使用数据库的前提下,如何保存并恢复一个自定义的ArrayList?
在线获取JSON格式的数据,并存储到一个ArrayList。由于应用被系统在后台关闭时,这个ArrayList会被清空,导致用户从“最近使用的应用”列表返回应用时,会抛出空指针异常。所以我们需要在onSavedInstanceState中保存这个ArrayList,并在用户返回时检查ArrayList是否为空,如果为空就应该恢复之前保存的数据。
自定义的Recipe类结构如下:
public class Recipe {
@SerializedName("ingredients")
@Expose
private ArrayList<Ingredient> ingredients;
@SerializedName("name")
@Expose
private String name;
@SerializedName("steps")
@Expose
private ArrayList<Step> steps;
///...
注意其中的ingredients和steps是两个自定义的ArrayList,因此无法直接存储在Bundle中。Ingredient和Step两个类的结构如下:
public class Ingredient {
@SerializedName("measure")
@Expose
private String measure;
@SerializedName("ingredient")
@Expose
private String ingredient;
@SerializedName("quantity")
@Expose
private String quantity;
///...
public class Step {
@SerializedName("shortDescription")
@Expose
private String shortDescription;
@SerializedName("description"