Java 保存和读取ArrayList

Java 保存和读取ArrayList,java,android,arraylist,save,Java,Android,Arraylist,Save,保存方法(保存列表为Arraylist): 我的阅读方法(可能是我的问题所在): publicstaticvoidreadlist(){ String arrayString=prefs.getString(“列表”,null); Calculate.saveList=(ArrayList)Arrays.asList(arrayString.split(“,”); } Logcat错误: java.lang.RuntimeException:无法启动活动组件信息{com.tsury.icalo

保存方法(保存列表为Arraylist):

我的阅读方法(可能是我的问题所在):

publicstaticvoidreadlist(){
String arrayString=prefs.getString(“列表”,null);
Calculate.saveList=(ArrayList)Arrays.asList(arrayString.split(“,”);
}
Logcat错误:

java.lang.RuntimeException:无法启动活动组件信息{com.tsury.icalorie/com.tsury.icalorie.SavedActivity}:java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“java.lang.String[]java.lang.String.split(java.lang.String)”


我需要保存该数组列表,当然以后再阅读。

您可以将数组列表转换为json字符串并将其另存为字符串 读取json字符串并将其转换为您的对象

您可以使用Gson库来实现这一点

执行以下步骤:

1-将此相关性添加到Gradle文件中

compile 'com.google.code.gson:gson:2.7'
创建一个保持ArrayList的类

class MyList{
   @SerializedName("myStrings")
   public ArrayList<String> myStrings;
}
然后使用以下行将MyList对象转换为Json:

String json=new Gson().toJson(myListInstance)
并将此json字符串保存在SharedReferences中

当您要加载数据时,请从SharedReferences读取json字符串,然后使用此行将其转换为对象

MyList myList = new Gson().fromJson(json, MyList.class);

有这样做的例子吗?我应该怎么做:“创建MyList类的实例,并在myString中添加字符串值。”?是否确保在保存时对
编辑器
对象调用
.apply()
.commit()
,现在我收到了这个错误-java.lang.RuntimeException:无法启动活动组件信息{com.tsury.icalorie/com.tsury.icalorie.SavedActivity}:java.lang.ClassCastException:java.util.Arrays$ArrayList无法转换为java.util.ArrayList
MyList myListInstance=new MyList(); 
myList.myStrings.add("Peter");
myList.myStrings.add("John");
myList.myStrings.add("Faraz");
String json=new Gson().toJson(myListInstance)
MyList myList = new Gson().fromJson(json, MyList.class);