如何禁用最近 3 天和未来的 DateTimePicker android

How to disable last 3 days and future DateTimePicker android

我第一次尝试使用 DateTimePicker,但我对在过去 3 天和未来一天禁用它感到困惑。嗯,也许我一直在研究 http://tips.androidgig.com/disable-future-dates-from-datepickerdialog/ 但我无法在我的函数中实现。

这是我点击 TextView 时显示 DateTimePicker 的函数

private void setDatePicker() {
calDate1 = Calendar.getInstance();
calDate2 = Calendar.getInstance();
final DatePickerDialog.OnDateSetListener dateSet1 = new DatePickerDialog.OnDateSetListener() {
  @Override
  public void onDateSet(DatePicker datePicker, int year, int month, int date) {
    calDate1.set(year, month, date);
    displayDate(tvDate1, calDate1);
  }
};
tvDate1.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View view) {
    new DatePickerDialog(TicketStatusActivity.this, dateSet1, calDate1.get(Calendar.YEAR), calDate1.get(Calendar.MONTH), calDate1.get(Calendar.DAY_OF_MONTH)).show();
  }
});
final DatePickerDialog.OnDateSetListener dateSet2 = new DatePickerDialog.OnDateSetListener() {
  @Override
  public void onDateSet(DatePicker datePicker, int year, int month, int date) {
    calDate2.set(year, month, date);
    displayDate(tvDate2, calDate2);
  }
};
tvDate2.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View view) {
    new DatePickerDialog(TicketStatusActivity.this, dateSet2, calDate2.get(Calendar.YEAR), calDate2.get(Calendar.MONTH), calDate2.get(Calendar.DAY_OF_MONTH)).show();
  }
});
displayDate(tvDate1, calDate1);
displayDate(tvDate2, calDate2);}

抱歉,如果这个问题不重要而且我的语法不好 고맙습니다

在日期选择器中设置 MaxDate。

试试这个:

Calendar cal = Calendar.getInstance();
        cal.add(Calendar.DATE, -3);
        DatePickerDialog dpDialog = new DatePickerDialog(this, myDateListener, mYear, mMonth, mDay);
        dpDialog.getDatePicker().setMaxDate(cal.getTimeInMillis());