Android DatePicker的日期保存和加载

时间:2015-08-13 21:36:46

标签: android datepicker android-datepicker

我正在尝试将Datepicker的日期保存到文件中,并且在打开应用程序时从上次读回来并相应地设置日期(如果这是第一次没有文件)已经保存,设置为2000年1月1日)。除了DatePicker之外,所有小部件(例如editText,名称,性别等)都能正常工作。

由于某些原因,它不起作用。有人可以帮忙吗?文件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
    }

1 个答案:

答案 0 :(得分:0)

我将所有内容转换为Calendar并避免使用Date已弃用的方法。它是固定的(Date.getYear()给出一个两位数的YY,应该与1900一起添加。)

相关问题