#java #android #xml
#java #Android #xml
Вопрос:
Я реализовал выбор даты в Android Studio, но я хочу внести некоторые изменения. Я хочу сделать недоступными даты до сегодняшнего дня и все воскресенья, и хочу сделать первую выбранную дату как минимум через 3 дня после текущего дня. Например, если сегодня пятница, я хочу, чтобы первым выбранным днем была среда (так как воскресенье не выбирается). Как это реализовать?
xml:
<DatePicker
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@ id/dpTake"
android:textColor="@android:color/white"
android:layout_gravity="center_horizontal" />
java:
private DatePicker dpTake;
dpTake=(DatePicker) rootView.findViewById(R.id.dpTake);
int day=dpTake.getDayOfMonth();
int month=dpTake.getMonth();
int year=dpTake.getYear();
String dateTake = String.valueOf(year) "-" String.valueOf(month) "-" String.valueOf(day);
order.setDate_take(dateTake);
Ответ №1:
datePicker.setMinDate(value);
В этой строке будет установлена минимальная дата. Теперь значение будет:
long value = ((day 3) * convert_to_milliseconds) -System.currentTimeMillis();
Вы преобразовали 3 дня с сегодняшнего дня в миллисекунды (однако, если вы вводите данные в 7 часов утра, 3 дня будут засчитаны в 7 часов утра 3 дня спустя, выполните некоторое программирование, если хотите исправить в 12 часов ночи!).
Приветствия!
Перередактировать: Это может сработать>
if (choosenDate.get(Calendar.DAY_OF_WEEK) ==
Calendar.SUNDAY) {
< ..... Toast or SnackBar etc! ...... >
}
Комментарии:
1. Большое вам спасибо! и как сделать воскресенье недоступным? или, по крайней мере, когда кто-то выбирает воскресенье, всегда отображать тост или сообщение, чтобы выбрать другой день и вернуть выбранное значение к предыдущей выбранной дате?
2. @AndrewT, это помогает?
3. в любом случае я не могу сделать воскресенье недоступным
4. Я хочу сделать так, чтобы, если выбрано воскресенье, автоматически сделать понедельник выбранным днем
5. @AndrewT, плохой дизайн. но сделайте, если (выберите дату.получить(Календарь. DAY_OF_WEEK 1)
Ответ №2:
Вы можете попробовать использовать DatePicker.setMinDate()
метод. Например Создать Calendar
экземпляр:
Calendar c = Calendar.getInstance();
c.set(Calendar.DAY_OF_MONTH,-3); //-3 means 3 days before.
dpTake.setMinDate(c.getTimeInMillis());