java - 如何在Android中设置DatePicker和TimePicker的限制

标签 java android android-datepicker android-timepicker

我想对日期选择器设置限制,以便用户只能选择从现在起 7 天后的日期。我还想对 Timepicker 设置限制,以便用户只能选择上午 11:00 到下午 6:00 之间的时间。这是我的 DatePicker 和 TimePicker 代码。

    private void showTimeDialog(final EditText timeInput) {

        final Calendar calendar = Calendar.getInstance();

        TimePickerDialog.OnTimeSetListener timeSetListener = new TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {

                calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
                calendar.set(Calendar.MINUTE, minute);

                timeInput.setText(enteredTime.format(calendar.getTime()));
                time = enteredTime.format(calendar.getTime());

            }
        };

        new TimePickerDialog(OrderPickupActivity.this, timeSetListener, calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), false).show();

    }

    private void showDateDialog(final EditText dateInput) {

        final Calendar calendar = Calendar.getInstance();

        DatePickerDialog.OnDateSetListener dateSetListener = new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {

                calendar.set(Calendar.YEAR,year);
                calendar.set(Calendar.MONTH,month);
                calendar.set(Calendar.DAY_OF_MONTH,dayOfMonth);

                dateInput.setText(enteredDate.format(calendar.getTime()));
                date = enteredDate.format(calendar.getTime());
            }
        };

        new DatePickerDialog(OrderPickupActivity.this, dateSetListener, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)).show();

    }

你能帮我一下吗?

最佳答案

    private void showDateDialog(final EditText dateInput) {

            final Calendar calendar = Calendar.getInstance();

            DatePickerDialog.OnDateSetListener dateSetListener = new DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {

                    calendar.set(Calendar.YEAR,year);
                    calendar.set(Calendar.MONTH,month);
                    calendar.set(Calendar.DAY_OF_MONTH,dayOfMonth);

                    dateInput.setText(enteredDate.format(calendar.getTime()));
                    date = enteredDate.format(calendar.getTime());
                }
            };

          DatePickerDialog  datePickerDialog =   new 
   DatePickerDialog(OrderPickupActivity.this, dateSetListener, 
 calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), 
 calendar.get(Calendar.DAY_OF_MONTH));
 Calendar c = Calendar.getInstance();
  c.setTime(new Date()); // Now use today date.
  c.add(Calendar.DATE, 7); // Adding 7 days
 datePickerDialog.getDatePicker().setMaxDate(c.getTimeInMillis());
 datePickerDialog.show();
        }

关于java - 如何在Android中设置DatePicker和TimePicker的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61679102/

相关文章:

java - 在 fragment 上膨胀图像按钮

Android:快速访问 "test"应用程序

java - OnClickListener 仅触发一个函数

android - 如何让用户从微调器中选择特定年份

java - Spring Autowired 服务和 Controller 不工作

Java字符串分割方法评估

java - Android - 使用push()插入多个标记

java - 初始化 int 数组中的值后,对该数组的更新将不会出现在 Serial 中

android - 如何在未扩展 Activity 的类中使用 getBaseContext()

android - 如何对 Android 源代码做一个小改动,并合并到你自己的项目中