그래서 날짜, 제목 및 본문 텍스트 필드를 기록하는 메모장 응용 프로그램을 만들고 있습니다. 내 포스트 버튼을 눌렀을 때 모든 것이 제대로 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에 저장해야하는 메서드가 있습니다. 나는 나의 새로운 LogList의 값의 순서를 변경하면 내 응용 프로그램을 닫고 다시 후
private void saveInFile(String subject_text, String date, String body_text){
LogList lt = new LogList(date, subject_text, body_text);
lts.add(lt);
saveAllLogs();
}
이제 첫 번째 일이 제대로 표시됩니다. 다음은 내 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(); }
}
어떤 도움을 주시면 감사하겠습니다.
한 가지를 들어
"날짜"가 정확합니다. Parameters 변수 ("LogBody")의 대소 문자가 매개 변수 ("LogBody")의 대소 문자와 다르므로 LogBody 및 LogSubject는 사용되지 않습니다. – paulsm4
그런 작은 실수로 고칠 시간이 많이 들었습니다. 도와 주셔서 감사합니다! 변수를 전환하면 이제 제대로 작동합니다. – user2802899