所以我正在做一個記事本應用程序,記錄日期輸入,主題和正文文本字段。當我點擊我的發佈按鈕時,所有內容都正確顯示在我的ListView中,但是當我關閉應用程序並重新打開它時,只有日期保持不變,其他兩個值爲NULL。以下是我正在使用的代碼。試圖保存對象的自定義數組Android
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(); }
}
任何幫助將不勝感激!
「日期」是正確的。參數LogBody和LogSubject從不使用,因爲變量(「logBody」)的大小寫與參數(「LogBody」)的大小寫不同。 – paulsm4
我討厭這樣一個小小的錯誤需要花費幾個小時來修復。謝謝您的幫助!切換變量,現在它工作正常。 – user2802899