【问题标题】:How to set restrictions for DatePicker and TimePicker in Android如何在 Android 中为 DatePicker 和 TimePicker 设置限制
【发布时间】:2020-05-08 12:23:57
【问题描述】:

我想对 Datepicker 设置限制,以便用户只能选择 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();

    }

你能帮帮我吗?

【问题讨论】:

    标签: java android android-datepicker android-timepicker


    【解决方案1】:
        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();
            }
    

    【讨论】:

    • 你能帮我搞定时间选择器吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-01
    • 1970-01-01
    • 2016-03-19
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多