2013-07-17 81 views
4

请参考下面的图片日期:日期选择器对话框不匹配选择

enter image description here

上面说星期四,1909年10月28日...而实际日期选择器的值为1月3日的文字, 1902. 什么是错误?

这里是我的代码:

@SuppressWarnings("deprecation") 
public void setTheDate(View v){ 
    showDialog(DATE_DIALOG_ID); 
} 

@Override 
protected Dialog onCreateDialog(int id) { 
    switch (id) { 
    case DATE_DIALOG_ID: 
     // set date picker as current date 
     return new DatePickerDialog(this, datePickerListener, 
       year, month,day); 
    } 
    return null; 
} 

private DatePickerDialog.OnDateSetListener datePickerListener 
= new DatePickerDialog.OnDateSetListener() { 

    // when dialog box is closed, below method will be called. 
    public void onDateSet(DatePicker view, int selectedYear, 
      int selectedMonth, int selectedDay) { 
     year = selectedYear; 
     month = selectedMonth; 
     day = selectedDay; 
     System.out.println("date" + year + month + day); 
    } 
}; 

DATE_DIALOG_ID是最后的常数,我请一个点击按钮的setTheDate()方法。

我在做什么错了?

回答

0

只需尝试一下,类似于您的代码,但它对我来说很有用。

Calendar c = Calendar.getInstance(); 
      mYear = c.get(Calendar.YEAR); 
      mMonth = c.get(Calendar.MONTH); 
      mDay = c.get(Calendar.DAY_OF_MONTH); 
      y = c.get(Calendar.YEAR); 
      m = c.get(Calendar.MONTH); 
      dy = c.get(Calendar.DAY_OF_MONTH); 

      DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() { 

       public void onDateSet(DatePicker view, int year, 
         int monthOfYear, int dayOfMonth) { 
        Log.d("err", "onselect"); 
        mYear = year; 
        mMonth = monthOfYear; 
        mDay = dayOfMonth; 


       } 
      }; 

      DatePickerDialog d = new DatePickerDialog(getActivity(), 
        mDateSetListener, mYear, mMonth, mDay); 
      d.show(); 
+0

啊,当然显示日期!错误的是我今天没有设置实例!所以这意味着日历会采用它的第一个值,即1900。 –

1

您可以使用此代码从日期选择器中检索值。 添加该代码onDateSet() method of OnDateSetListener()

TimestampField field = (TimestampField) fieldpicker; 
Timestamp timestamp = field.getTimestamp(); 
timestamp.setYear(year - 1900); 
timestamp.setMonth(monthOfYear); 
timestamp.setDate(dayOfMonth); 
field.setTimestamp(timestamp); 

内这将在正确的格式

相关问题