How to set a specific date in date picker in android

自作多情 提交于 2019-12-02 05:40:54
class DatePickerDialog1964 extends DatePickerDialog {
DatePickerDialog1964(Context c) {
    super(c, null, 2013, 4, 21);

    @SuppressWarnings("deprecation")
    Date min = new Date(2013-1900, 4, 21);

    DatePicker p = getDatePicker();
    CalendarView cv = p.getCalendarView(); // should check for null
    long cur = cv.getDate();
    int d = cv.getFirstDayOfWeek();
    p.setMinDate(min.getTime());
    cv.setDate(cur + 1000L*60*60*24*40);
    cv.setFirstDayOfWeek((d + 1) % 7);
    cv.setDate(cur);
    cv.setFirstDayOfWeek(d);
}

}

OR

DatePickerDialog dpDialog = new DatePickerDialog(this, pDateSetListener, pYear, pMonth, pDay);
DatePicker datePicker = dpDialog.getDatePicker();

Calendar calendar = Calendar.getInstance();//get the current day
datePicker.setMinDate(calendar.getTimeInMillis());//set the current day as the max date
return dpDialog;

You can set by this code:

Calendar cal=Calendar.getInstance(Locale.ENGLISH);
datePickerDialog .init(cal.getTime().getYear()+1900, cal.getTime().getMonth(), cal.getTime().getDay(), this);

EDIT

To set Minimum date to your DatePicker you can set it by using :

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

which sets today's date as minimum date and all the past dates are disabled.

Note: setMinDate was introduced in API 11

EDIT #2

You need to create custom DatePickerDialog for that :

class DatePickerDialog1964 extends DatePickerDialog {
    DatePickerDialog1964(Context c) {
    super(c, null, 2014, 1, 1);

    @SuppressWarnings("deprecation")
    Date min = new Date(2014-1900, 1, 1);

    DatePicker p = getDatePicker();
    CalendarView cv = p.getCalendarView(); // should check for null
    long cur = cv.getDate();
    int d = cv.getFirstDayOfWeek();
    p.setMinDate(min.getTime());
    cv.setDate(cur + 1000L*60*60*24*40);
    cv.setFirstDayOfWeek((d + 1) % 7);
    cv.setDate(cur);
    cv.setFirstDayOfWeek(d);
  }
}

To use this :

new DatePickerDialog1964(context).show();

Simple sollution:

int year = 2014;
int month = 1;
int day = 1;
DatePickerDialog datePickerDialog = new DatePickerDialog(EditProfileScreen.this, 
android.R.style.Theme_Holo_Light_Dialog,
                    onDateSetListener, year, month, day);

datePickerDialog.setTitle(getString(R.string.birthday));
datePickerDialog.show();

So date picker starts on jan 1st 2014 as you wanted :)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!