限制为 Android 日期选择器对话框不起作用?如何解决这个问题是问题



我只想显示上个月的日期。而且到今天的日期而不是未来的日期。

fromDate.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
    final Calendar newCalendar = Calendar.getInstance();
    datePickerDialog = new DatePickerDialog(getContext(), new DatePickerDialog.OnDateSetListener() {
      public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
        newCalendar.set(year, monthOfYear, dayOfMonth);
        datePickerDialog.getDatePicker().setMaxDate(newCalendar.getTimeInMillis() + 1000);
        datePickerDialog.getDatePicker().setMinDate(newCalendar.getTimeInMillis() - 1000);
        fromDate.setText(dayOfMonth + "-" + (monthOfYear + 1) + "-" + year);
      }
    }, newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));
    datePickerDialog.show();
  }
});

试试这个,

    fromDate.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        final Calendar newCalendar = Calendar.getInstance();
        datePickerDialog = new DatePickerDialog(getContext(), new DatePickerDialog.OnDateSetListener() {
          public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
            newCalendar.set(year, monthOfYear, dayOfMonth);
            /*Set max date*/
            datePickerDialog.getDatePicker().getDatePicker().setMaxDate(new Date().getTime());
            // Subtract 1 month from Calendar updated date
             c.add(Calendar.MONTH, -1);
             // Set the Calendar new date as minimum date of date picker
              datePickerDialog.getDatePicker() .getDatePicker().setMinDate(newCalendar.getTimeInMillis());
          }
        }, newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));
        datePickerDialog.show();
        }
});

您可以使用 DatePicker 的 maxDate 和 minDate 属性,也可以使用 Java Code 完成相同的操作。您可以参考链接以获取更多信息

最新更新