Я пытаюсь сохранить дату Datepicker
в файл, и при открытии приложения прочитайте его с последнего времени и установите дату на нем соответственно (если это первый раз и файл уже не был сохранен, установите его на 1 января 2000 года). Все виджеты, такие как editText, имена, пол и т. Д. Работают правильно, кроме DatePicker
.Дата и дата сохранения даты DatePicker Android
По некоторым причинам это не сработает. Может ли кто-нибудь помочь с этим? В части IO файла нет никаких проблем; вероятно, есть ошибки Calendar
/Date
, которые я предполагаю.
При загрузке:
Date BD=new Date(2000,0,1);
// Loading (w/o exception handling code):
try {
FileInputStream fis = this.openFileInput(fileName);
ObjectInputStream is = new ObjectInputStream(fis);
Object[] formData = (Object[]) is.readObject();
is.close();
fis.close();
// parse data from array
BD=(Date) formData[0];
//there are other fields as well
} catch (FileNotFoundException e) {
// TODO if for the first time- No data file exists
// sets initial default value
}
catch (IOException e) {
}
catch (ClassNotFoundException e) {
}
//set value for BD
final DatePicker BDDatePicker = (DatePicker) findViewById(R.id.datePickerBD);
BDDatePicker.updateDate(BD.getYear(), BD.getMonth(), BD.getDate());
И для сохранения:
final DatePicker BDdatePicker = (DatePicker) findViewById(R.id.datePickerBD);
Date BD= getDateFromDatePicker(BDdatePicker);
Object [] formData=new Object [7];
formData [0]=BD;
//Saving (w/o exception handling code):
FileOutputStream fos;
try {
fos = this.openFileOutput(fileName, Context.MODE_PRIVATE);
try {
ObjectOutputStream os = new ObjectOutputStream(fos);
os.writeObject(formData);
fos.close();
os.close();
} catch (IOException e) {
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
}