Как установить минимальную дату для «ToDate» на DatePicker согласно «FromDate» я выбрал на другой DatePicker - PullRequest
0 голосов
/ 20 апреля 2019

Короче, у меня есть два сборщика дат (От, До).Где я выбираю «FromDate» и «ToDate» до текущей даты.

Если я выберу 2019-04-04 для «FromDate» и когда я выберу «ToDate», в нем должны быть скрыты даты, предшествующие «FromDate».Как мне этого добиться?

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;
    }
});

1 Ответ

0 голосов
/ 20 апреля 2019

Вам необходимо установить минимальную дату для выбора даты toDate

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

Надеюсь, это поможет!

...