【问题标题】:Limit to Android datepicker dialog not working? How to solve this is issue?限制为 Android 日期选择器对话框不起作用?如何解决这个问题?
【发布时间】:2017-02-08 06:35:52
【问题描述】:

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

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();
  }
});

【问题讨论】:

标签: android


【解决方案1】:

试试这个,

    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();
        }
});

【讨论】:

    【解决方案2】:

    您可以使用 DatePicker 的 maxDate 和 minDate 属性,同样可以使用 Java Code 来完成。您可以参考link 了解更多信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多