【发布时间】:2015-11-13 10:00:20
【问题描述】:
我知道以前可能有人问过这个问题,但我找不到解决我的问题的方法。我有两个 DatePickerDialogs,只要设置了开始日期,我就会将另一个 datepickerdialog 的最小日期设置为该日期。但它仍然不起作用,因为 enddatepicker 的最小日期与 startdatepicker 相同。这是我的参考代码:
Calendar c = Calendar.getInstance();
selectedEndDay = selectedStartDay = c.get(Calendar.DAY_OF_MONTH);
selectedEndMonth = selectedStartMonth = c.get(Calendar.MONTH);
selectedEndYear = selectedStartYear = c.get(Calendar.YEAR);
startDatePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
selectedStartYear = year;
selectedStartMonth = monthOfYear;
selectedStartDay = dayOfMonth;
Log.e(TAG, "SET DATE: " + selectedStartYear + "/" + selectedStartMonth + "/" + selectedStartDay);
btnStartDate.setText((selectedStartMonth + 1) + "/" + selectedStartDay + "/" + selectedStartYear);
//set minimum date of end datepicker
Calendar c2 = Calendar.getInstance();
c2.set(year, monthOfYear, dayOfMonth);
endDatePickerDialog.getDatePicker().setMinDate(c2.getTime().getTime());
}
},selectedStartYear,selectedStartMonth,selectedStartDay);
startDatePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis()-1000);
endDatePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
selectedEndYear = year;
selectedEndMonth = monthOfYear;
selectedEndDay = dayOfMonth;
Log.e(TAG, "SET DATE: " + selectedEndYear + "/" + selectedEndMonth + "/" + selectedEndDay);
btnEndDate.setText((selectedEndMonth+1)+"/"+selectedEndDay+"/"+selectedEndYear);
}
},selectedEndYear,selectedEndMonth,selectedEndDay);
//set minimum date of end datepicker
endDatePickerDialog.getDatePicker().setMinDate(c.getTime().getTime());
【问题讨论】:
标签: android android-datepicker datepickerdialog