2014-09-11 159 views
0

如何显示1980initial年度DatePicker对话框初始年,仍然我得到的初始日期为当前日期显示1980年在日期选择器

看我下面的代码,让我知道我必须做的改变在我的代码

 @Override 
     protected Dialog onCreateDialog(int id) { 
      switch (id) { 
      case DIALOG_DATE: 
       return new DatePickerDialog(this, new OnDateSetListener() { 

        @Override 
        public void onDateSet(DatePicker view, int year, 
          int monthOfYear, int dayOfMonth) { 
         dateTime.set(year, monthOfYear, dayOfMonth); 
         editDate.setText(dateFormatter 
           .format(dateTime.getTime())); 
        } 
       }, dateTime.get(Calendar.YEAR), 
        dateTime.get(Calendar.MONTH), 
        dateTime.get(Calendar.DAY_OF_MONTH)); 
      } 
      return null; 
+0

我想你应该改变这一行'dateTime.set(年,monthOfYear,请将dayOfMonth);'和使用这些参数1980,0,1 – zozelfelfo 2014-09-11 09:08:07

+0

@zozelfelfo尝试,但没有这样做仍然得到同样的 – Sun 2014-09-11 09:19:37

回答

3

这是因为在DatePickerDialog构造函数的最后3个参数是要在最初的DatePicker显示的日期。您正在设置日期时间变量的当前一天

private Calendar dateTime = Calendar.getInstance(); 

所以必须将日期时间变量设置为要在第一次运行,以显示正确的日期。在您的onCreate()方法做到这一点

dateTime.set(1980, Calendar.JANUARY , 1); 

现在你的DatePicker应该显示在第一次运行的正确值,因为你在回调设置日期时间变量,当用户打开它应该设置正确的前值的对话框。

+0

试过做.. – Sun 2014-09-12 11:07:57

+2

这答案是正确的。 @Sun你的代码中没有将日期设置为1980年的任何地方。他建议的上面这行应该放在你的'onCreate'中。 – 2014-09-16 05:45:40

+0

对不起,我正在做愚蠢的错误,反正谢谢你,享受赏金 – Sun 2014-09-17 11:24:56