Intereting Posts
Невозможно выполнить низкоуровневое декодирование видео на Android 4.2 без использования медиа-экстрактора Получить доступ к USB-накопителю в Android Android, как сфокусировать ActionBar searchView Android: Где сохранен звуковой файл temp Recognition? «Кнопка« Назад »с помощью панели инструментов getSupportActionbar и appcompat v7 Как предотвратить изменение пользователем даты / времени (в Android)? Как закрыть активность с помощью клавиатуры программного обеспечения после нажатия BACK? Службы Google Play, отсутствующие в эмуляторе (Android 4.4.2) Преобразование макета кадра в изображение и сохранение его В чем разница между getWidth / Height () и getMeasuredWidth / Height () в Android SDK? Как настроить Android Studio на работу полностью в автономном режиме? Android какая разница между getAction () и getActionMasked () в MotionEvent Воспроизведение звука с использованием примера soundpool Android SurfaceFlinger Как подключить Android-приложение к базе данных MySQL?

Как установить минимальную дату DatePicker на текущую дату

Я хочу установить минимальную дату, которую пользователь может выбрать в DatePicker, до текущей даты. Я пробовал это:

DatePicker datePicker = (DatePicker) findViewById(R.id.event_date); datePicker.setMinDate(System.currentTimeMillis()); 

Это дает мне следующее исключение:

 12-01 12:23:31.226: E/AndroidRuntime(10311): Caused by: java.lang.IllegalArgumentException: fromDate: Sat Dec 01 12:23:31 EST 2012 does not precede toDate: Sat Dec 01 12:23:31 EST 2012 

Как мне это сделать?

Solutions Collecting From Web of "Как установить минимальную дату DatePicker на текущую дату"

Ошибка говорит, что вы не можете установить минимальную дату именно сейчас. Попробуйте вычесть второе:

 datePicker.setMinDate(System.currentTimeMillis() - 1000); 

Из исходного кода минимальная дата должна быть до, а не равна текущей дате:

 if (date.before(mMinDate)) { throw new IllegalArgumentException("fromDate: " + mMinDate.getTime() + " does not precede toDate: " + date.getTime()); } 

Поэтому вам просто нужно вычесть достаточное время с этого момента ( System.currentTimeMillis() ) передать date.before(mMinDate) .

Если вы не хотите использовать настраиваемый диалог. Используйте этот код:

 datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis()); 

Установите Android DatePickerDialog, чтобы установить минимальный и максимальный код даты .

Вот примеры .

 final Calendar c = Calendar.getInstance(); int year = c.get(Calendar.YEAR); int month = c.get(Calendar.MONTH); int day = c.get(Calendar.DAY_OF_MONTH); DatePickerDialog dpd = new DatePickerDialog(getActivity(),AlertDialog.THEME_TRADITIONAL,this,year, month, day); //Get the DatePicker instance from DatePickerDialog DatePicker dp = dpd.getDatePicker(); //Set the DatePicker minimum date selection to current date dp.setMinDate(c.getTimeInMillis());//get the current day //dp.setMinDate(System.currentTimeMillis() - 1000);// Alternate way to get the current day //Add 6 days with current date c.add(Calendar.DAY_OF_MONTH,6); //Set the maximum date to select from DatePickerDialog dp.setMaxDate(c.getTimeInMillis()); //Now DatePickerDialog have 7 days range to get selection any one from those dates 

Попробуй это

 datePicker.setMinDate(new GregorianCalendar.getTimeInMillis()); 

. DatePickerDialog.getDatePicker () setMinDate (System.currentTimeMillis ()); Добавление этой строки в ваш фрагмент DatePicker установит минимальную дату в качестве текущей даты и отключит предыдущие месяцы.

Это может вам помочь.

 Calendar cal=Calendar.getInstance(); int year=cal.get(Calendar.YEAR); int month=cal.get(Calendar.MONTH); int day=cal.get(Calendar.DAY_OF_MONTH); int hour=cal.get(Calendar.HOUR_OF_DAY); int min=cal.get(Calendar.MINUTE); datePicker.updateDate(year, month, day); timePicker.setCurrentHour(hour); timePicker.setCurrentMinute(min);