Search code examples
javaandroidmaterialdatepicker

Material DateRangePicker set up a default range


I want in my DateRangePicker was a default selected range. How can I get that?

My code now:

            CalendarConstraints.Builder constraintBuilder = new CalendarConstraints.Builder();
            constraintBuilder.setValidator(DateValidatorPointForward.now());

            MaterialDatePicker.Builder builder = MaterialDatePicker.Builder.dateRangePicker();
            builder.setCalendarConstraints(constraintBuilder.build());

            final MaterialDatePicker materialDatePicker = builder.build();

            imageDate.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    materialDatePicker.show(getSupportFragmentManager(), "TAG");
                }
            });

Solution

  • Please use MaterialDatePicker.Builder.setSelection() method. Below code for setting today as the start date and end date:

    In Java:

    Calendar now = Calendar.getInstance()
    MaterialDatePicker.Builder builder = MaterialDatePicker.Builder.dateRangePicker();
    builder.setSelection(androidx.core.util.Pair(now.getTimeInMillis(), now.getTimeInMillis())
    

    In Kotlin

     val now = Calendar.getInstance()
     val builder = MaterialDatePicker.Builder.dateRangePicker()
     builder.setSelection(androidx.core.util.Pair(now.timeInMillis, now.timeInMillis))