在我的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变量的事件监听器,但我不确定如何实现它。有什么建议吗?
答案 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);
}