如何根据我在另一个日期选择器上选择的“ FromDate”为日期选择器设置“ ToDate”的最小日期

时间:2019-04-20 04:49:46

标签: java android android-datepicker

总之,我有两个日期选择器(从,到)。在这里选择“ 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 :(得分:0)

您需要为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

希望这会有所帮助!