-3

In brief, I have two date pickers (From, To). Where I choose "FromDate" and "ToDate" up to the current date.

If I choose 2019-04-04 to "FromDate" and when I choose "ToDate", it should hide the dates which are before "FromDate". How can I achieve this?

mFromEditTextBox.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        DatePickerDialog fromPicker = new DatePickerDialog(getActivity(), date, myCalendar
                .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
                myCalendar.get(Calendar.DAY_OF_MONTH));

        fromPicker.getDatePicker().setMaxDate(System.currentTimeMillis() - 1000);
        fromPicker.show();

        clickedView = (EditText) v;
    }
});

mToEditTextBox.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {

        DatePickerDialog toPicker = new DatePickerDialog(getActivity(), date, myCalendar
                .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
                myCalendar.get(Calendar.DAY_OF_MONTH));
        toPicker.getDatePicker().setMaxDate(System.currentTimeMillis()-1000);
        toPicker.show();
        clickedView = (EditText) v;
    }
});
James Z
  • 12,209
  • 10
  • 24
  • 44
Abhishek
  • 19
  • 7

1 Answers1

0

You need to set a minimum date for toDate picker

mToEditTextBox.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        DatePickerDialog toPicker = new DatePickerDialog(getActivity(), date, myCalendar
                .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
                myCalendar.get(Calendar.DAY_OF_MONTH));

        //set min date
        Date fromDate = parseFromDate();
        if (fromDate != null){
            toPicker.getDatePicker().setMinDate(fromDate.getTime());
        }

        toPicker.getDatePicker().setMaxDate(System.currentTimeMillis()-1000);
        toPicker.show();
        clickedView = (EditText) v;
    }
});

// returns date selected in mFromEditTextBox
private Date parseFromDate(){
    try{
        SimpleDateFormat f = new SimpleDateFormat("date format you used");
        return f.parse(mFromEditTextBox.getText().toString());
    } catch (Exception ex) {
        // from date is not selected
        // alert user to select from date
        return null;
    }
}

DatePicker

Hope this helps!

Lakshan Dissanayake
  • 521
  • 1
  • 4
  • 18