【发布时间】:2014-10-02 20:40:57
【问题描述】:
在我的 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 变量的事件监听器,但我不确定如何实现它。有什么建议吗?
【问题讨论】:
标签: android date events datepicker