在Android日期选择器中将SetMax日期设置为30天

我正在为Datepicker使用Material设计库。 我需要设置最小和最大日期。 最小日期有效,但我无法获得最长日期,该日期应该是距离最短date(current date) 30天。 谁能知道如何让它在这里工作?

 public void show() { Calendar now = Calendar.getInstance(); DatePickerDialog dpd = DatePickerDialog.newInstance( PostInfo.this, now.get(Calendar.YEAR), now.get(Calendar.MONTH), now.get(Calendar.DAY_OF_MONTH) ); dpd.setMinDate(Calendar.getInstance()); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DAY_OF_MONTH, 30); dpd.setMaxDate(calendar.getInstance()); dpd.show(getFragmentManager(), "Datepickerdialog"); 

你可以使用setMaxDate()

 Calendar calendar = Calendar.getInstance(); // this is default system date dpd.setMinDate(calendar); // set today's date as min date calendar.add(Calendar.DAY_OF_MONTH, 30); // add date to 30 days later dpd.setMaxDate(calendar); // set 30 days later as max date 

所以这终于奏效了。 我所要做的就是调用dpd.setMaxDate(now)而不是dpd.setMaxDate(now.getInstance())

 public void show() { Calendar now = Calendar.getInstance(); DatePickerDialog dpd = DatePickerDialog.newInstance( PostInfo.this, now.get(Calendar.YEAR), now.get(Calendar.MONTH), now.get(Calendar.DAY_OF_MONTH) ); dpd.setMinDate(Calendar.getInstance()); now.add(Calendar.DAY_OF_MONTH, 30); dpd.setMaxDate(now); dpd.show(getFragmentManager(), "Datepickerdialog"); }