Android两个DatePickers - 限制第二个最大日期

时间:2014-10-02 20:40:58

标签: android date events datepicker

在我的android片段中,我有2个日期选择器,当日期设置在第一个时,我希望将第二个日期的最大日期限制为提前1年。

以下是一些显示我如何实施拣货员的代码:

 startDateBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Calendar c = Calendar.getInstance();
            startDateListener = new DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(DatePicker datePicker, int y, int m, int d) {
                    //Set start date
                    startDate = calToDateString(y, m, d);
                    Toast.makeText(getActivity(), startDate, Toast.LENGTH_SHORT).show();
                }
            };
            // init datepicker
            startDatePicker = new DatePickerDialog(getActivity(), startDateListener,
                    c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH));
            startDatePicker.show();
        }
    });
    endDateBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Calendar c = Calendar.getInstance();
            endDateListener = new DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(DatePicker datePicker, int y, int m, int d) {
                    queryEndDate = calToDateString(y, m, d);
                    Toast.makeText(getActivity(), queryEndDate, Toast.LENGTH_SHORT).show();
                }
            };
            endDatePicker = new DatePickerDialog(getActivity(), endDateListener,
                    c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH));
            // *** Can only set max date here initially - startDate has not been set ***
            Date endMax = getTodaysDate();
            endDatePicker.getDatePicker().setMaxDate(endMax.getTime());
            endDatePicker.show();
        }
    });
}

问题是,当设置结束日期选择器的最大日期时 - 尚未输入第一个日期选择器的开始日期。输入第一个(开始)日期时,如何设置第二个日期选择器的最大日期?我想我需要一个startDate变量的事件监听器,但我不确定如何实现它。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

DatePickerDialog dpd=new DatePickerDialog(this, new OnDateSetListener() {

@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
Date myMaxDate;
    endDatePicker.setMaxDate(myMaxDate);

}