在android中设置DatePicker日期

问题描述:

我需要在我的应用程序中使用日期选择器对话框。首先,我打开日期选择器对话框,然后选择日期。下次每次打开Date pickerDialog时,日期选择器的日期应该是设备的当前日期。但是,它会在对话框中显示上次选择的日期。请帮我设置代码。这里是我的代码,因为我有现在:在android中设置DatePicker日期

@Override 
protected Dialog onCreateDialog(int id) 
{ 
    switch (id) 
    { 
     case DATE_DIALOG_ID: 

     Date d=new Date(); 
     Calendar c=Calendar.getInstance(); 
     c.setTimeZone(tz);   
     c.setTime(d); 
     d=c.getTime(); 

     int year = c.get(Calendar.YEAR); 
     int month = c.get(Calendar.MONTH); 
     int date = c.get(Calendar.DATE); 

     DatePickerDialog datePicker 
      = new DatePickerDialog(this, datePickerListener, year, month, date);  

     return datePicker;   
    } 
    return super.onCreateDialog(id); 
} 

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) 
    { 
     cors_year = selectedYear; 
     cors_month = selectedMonth; 
     cors_date = selectedDay; 

     getDate("calledfromDialog"); 
     displaySunTime(); 
     displayChoghadiya("Day"); 
     displayTime(3, 1); 
     dayButtonClicked(); 
     selected_DAY_NIGHT="Day"; 
    } 
}; 
+0

你有没有尝试过这些'c.setTimeZone(tz); c.setTime(d);'两行? – Shoshi 2013-03-08 18:48:14

+0

它需要根据当前默认时区获取当前日期。请忽略它 – 2013-03-09 07:07:55

注意onCreateDialog在V13过时,每documentation

使用新DialogFragmentFragmentManager代替;这也可以通过Android兼容性套件在较早的平台上使用。

,你会随着this tutorial

使用,但是,如果你想留在DatePickerDialog,你可以使用如下代码:

protected void onPrepareDialog (int id, Dialog dialog) 
{ 
    DatePickerDialog datePickerDialog = (DatePickerDialog) dialog; 
    // Get the current date 
    datePickerDialog.updateDate(year, month, day); 
} 

这是由于Android只要求onCreateDialog一次每个对话框重新使用对话框。 onPrepareDialog被调用以便在显示之前正确设置对话框的状态。

+0

哦....工作非常感谢...我把更新日期放在ondateset方法中。非常感谢你.. – 2013-03-09 07:06:40

+0

@MikinPatel - 确保你接受答案,如果它解决了你的问题,并祝你好运! – ianhanniballake 2013-03-09 15:19:19