如何在日期选择器中设置日期限制

时间:2016-07-04 07:05:51

标签: android datepicker

在我的应用程序中,我必须显示5年前的日期,从当前日期开始,例如今天是2016年7月4日,但在我的日期选择器中它将显示为2011年7月4日,用户无法在2011年7月4日之后选择日期但可以选择在2011年7月4日之前和之后。

我看过一些像Kendo Docs

这样的例子
 DatePickerDialog mDate = new DatePickerDialog(DatePicker.this, date, year, month, day);
            maxDate = Calendar.getInstance();
            maxDate.add(Calendar.YEAR,  -5);
            mDate.getDatePicker().setMaxDate(maxDate.getTimeInMillis());
            mDate.show();

我已经尝试了这个并且它在2011年1月到2011年7月4日完美地工作但是有一件事我想要的是当我点击日历它显示1900年1月所有我想要的是当我点击它它应该从2011年7月显示然后是落后的日期。

1 个答案:

答案 0 :(得分:0)

  

解-1

你可以设置:

long years4 = 126144000; //4 years in seconds
long years_millis4 = years4*1000; //4 years in milliseconds, which is required format in date picker

dateDialog.getDatePicker().setMaxDate((new Date().getTime())-years_millis4);

其中dateDialog是

new DatePickerDialog()

并且为MaxDate和MinDate设置的param类型是一个长

希望这适合您的情况。

除此之外,您还可以向日期选择器添加监听器,使用该监听器可以提示用户,以防他选择除所需日期之外的任何日期。

  

解决方案2

您可以使用微调器和自定义日期作为微调器中的列表来实现自定义日期选择器。获得输入时应用适当的转换。

  

确保java.util.Date.getTime()方法返回自1970年1月1日00:00:00 GMT以来经过的毫秒数。