gpt4 book ai didi

java - 尝试保存自定义对象数组 Android

转载 作者:行者123 更新时间:2023-12-01 14:05:34 25 4
gpt4 key购买 nike

因此,我正在制作一个记事本应用程序,用于记录输入的日期、主题和正文文本字段。当我点击发布按钮时,所有内容都正确显示在 ListView 中,但是当我关闭应用程序并重新打开它时,只有日期保持不变,其他两个值为 NULL。下面是我正在使用的代码。

public class LogList implements Serializable {
private String logDate;
private String logBody;
private String logSubject;

public LogList(String date, String LogBody, String LogSubject){
super();
this.logDate = date;
this.logBody = logBody;
this.logSubject = logSubject;
}

回到我的主类,我的方法应该将三个值保存到 ArrayList lts 中。

private void saveInFile(String subject_text, String date, String body_text ){
LogList lt = new LogList(date, subject_text, body_text);

lts.add(lt);

saveAllLogs();
}

现在,如果我更改新 LogList 中值的顺序,则在关闭应用程序并重新打开它后,只有第一个值会正确显示。以下是我的 saveAllLogs 方法和 loadFromFile 方法。

private ArrayList<String> loadFromFile(){
ArrayList<String> logs = new ArrayList<String>();
try {
FileInputStream fis = openFileInput(FILENAME);
ObjectInputStream ois = new ObjectInputStream(fis);
while (true) {
LogList lt = (LogList) ois.readObject();
logs.add(lt.toString());
lts.add(lt);
}
}
catch (FileNotFoundException e) { e.printStackTrace(); }
catch (IOException e) { e.printStackTrace(); }
catch (ClassNotFoundException e) { e.printStackTrace(); }
return logs;
}

private void saveAllLogs() {
try {
FileOutputStream fos = openFileOutput(FILENAME, 0);
ObjectOutputStream oos = new ObjectOutputStream(fos);
for (LogList lti : lts) {
oos.writeObject(lti);
}
fos.close();
}
catch (FileNotFoundException e) { e.printStackTrace(); }
catch (IOException e) { e.printStackTrace(); }
}

任何帮助将不胜感激!

最佳答案

一方面,

public LogList(String date, String LogBody, String LogSubject){
super();
this.logDate = date;
this.logBody = logBody;
this.logSubject = logSubject;
}

似乎是错误的。由于您的参数名称大写,但您使用小写名称设置成员。

你的意思是:

public LogList(String date, String logBody, String logSubject){
super();
this.logDate = date;
this.logBody = logBody;
this.logSubject = logSubject;
}

编辑:微不足道的事情,不会影响您的代码:您不需要在构造函数中调用 super() 因为您没有扩展任何类。

关于java - 尝试保存自定义对象数组 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18937494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com