Tôi đang ở trong một tình huống cụ thể, trong đó tôi phải thay đổi ngày tối thiểu và tối thiểu là DatePicker
theo phần tử được chọn là Spinner
. Đây là đoạn mã tôi đang sử dụng để chuyển đổi tối thiểu và ngày tối đa.setMinDate (...) cho DatePicker không hoạt động khi được gọi lần thứ hai
private void switchCalculationMethod(int method) {
calculationMethod = method;
switch (method) {
case METHOD_1:
datePicker.setMinDate(new LocalDate().minusWeeks(42).getMillis());
datePicker.setMaxDate(new LocalDate().plusDays(1).getMillis() - 1);
break;
case METHOD_2:
datePicker.setMinDate(new LocalDate().minusWeeks(2).getMillis()); // This don't work!!
datePicker.setMaxDate(new LocalDate().plusWeeks(40).getMillis()); // This works!!!
break;
}
datePicker.init(today.getYear(), today.getMonthOfYear() - 1,
today.getDayOfMonth(), this);
}
Vì vậy, DatePicker
sẽ được thiết lập một cách chính xác lần đầu tiên, vấn đề xảy ra khi tôi cố gắng để thay đổi ngày tối thiểu một lần nữa (thay đổi công trình ngày tối đa). Nó sẽ vẫn ở giá trị tôi đã đặt trước. Tôi nghĩ đây là một lỗi. Tôi có làm gì sai ở đây không? Có một cách giải quyết cho điều này?.
PS: Tôi đang sử dụng api thời gian Joda.
Bất kỳ lý do cụ thể nào mà bạn không sử dụng đểDateTimeAtStartOfDay() trên setMinDate thứ hai của bạn? – Voidpaw
@Voidpaw Không, đó là một sai lầm trong khi chỉnh sửa câu hỏi. Tôi đang sử dụng một phương pháp tùy chỉnh cho điều đó ngay bây giờ. Chỉ nghĩ rằng tôi sẽ bỏ qua phần đó để đơn giản. Đã sửa. –