0

I want to set date between 1990 and present date in date picker dialog in versions below honey comb,it is possible for versions above honey comb using functions setMinDate() and setMaxDate(),I tried the following code and it is possible to set either mindate or max date for lower versions,,the code is

calendar = new GregorianCalendar();
                        mDatePickerField = dialog.getClass().getDeclaredField("mDatePicker");
                        mDatePickerField.setAccessible(true);
                        DatePicker datePicker = (DatePicker) mDatePickerField.get(dialog);
                        final int maxYear = calendar.get(Calendar.YEAR);
                        final int maxMonth = calendar.get(Calendar.MONTH);
                        final int maxDay = calendar.get(Calendar.DAY_OF_MONTH);


                       datePicker.init(maxYear, maxMonth, maxDay,
                                new OnDateChangedListener() {

                                    public void onDateChanged(DatePicker view, int year,
                                            int month, int day) {
                                        Calendar newDate = Calendar.getInstance();
                                        newDate.set(year, month, day);

                                        if (newDate.after(calendar)) {
                                            view.init(maxYear, maxMonth, maxDay, this);
                                        }
                                    }
                                });
                        Log.w(TAG, "API Level < 11 so not restricting date range...");

Please give me some new code or change the existing code for datepicker supporting both mindate and maxdate,,,,,thanks

Oleg Mikheev
  • 17,186
  • 14
  • 73
  • 95

1 Answers1

0

I think you should use update instead of init.

replace this line

 view.init(maxYear, maxMonth, maxDay, this);

with

view.updateDate(maxYear, maxMonth, maxDay);
Ketan Ahir
  • 6,678
  • 1
  • 23
  • 45