how to set android datepicker dialog max date to current date? [duplicate]

二次信任 提交于 2019-12-14 02:35:07

问题


I'm new to android and tried every thing to set datepicker dialog max date to current date. Done R & D but didn't succeed. Please some one help me in this. Thanks in advance

Here is the code:

  Calendar myCalendar;
  DatePickerDialog.OnDateSetListener date;

  dobET = (EditText) findViewById(R.id.dobET);
  myCalendar = Calendar.getInstance();

    date = new DatePickerDialog.OnDateSetListener() {

        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                int dayOfMonth) {
            // TODO Auto-generated method stub
            myCalendar.set(Calendar.YEAR, year);
            myCalendar.set(Calendar.MONTH, monthOfYear);
            myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
            updateLabel();
        }
    };

    dobET.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            new DatePickerDialog(ChangeProfileActivity.this, date,
                    myCalendar.get(Calendar.YEAR), myCalendar
                            .get(Calendar.MONTH), myCalendar
                            .get(Calendar.DAY_OF_MONTH)).show();

        }
    });

回答1:


DatePickerDialog dialog = null;
Calendar myCalendar = Calendar.getInstance();

DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() 
{
    @Override
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth)
    {
        myCalendar.set(Calendar.YEAR, year);
        myCalendar.set(Calendar.MONTH, monthOfYear);
        myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
        updateLabel();
    }
};
private void updateLabel() 
{
    String myFormat = "MM/dd/yy"; //In which you need put here
    SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);

    dobET.setText(sdf.format(myCalendar.getTime()));
}
dialog = new DatePickerDialog(MainActivity.this, date, myCalendar.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
            myCalendar.get(Calendar.DAY_OF_MONTH));

Try this it will help you ....




回答2:


Use this:

 mDPDdialog.getDatePicker().setMaxDate(new Date().getTime());

Documentation

EDIT: Try this:

this.calendar = new GregorianCalendar();
this.datePicker = (DatePicker) findViewById(R.id.mDatePicker);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
    // (picker is a DatePicker)
    this.datePicker.setMaxDate(this.calendar.getTimeInMillis());
} else {
    final int maxYear = this.calendar.get(Calendar.YEAR);
    final int maxMonth = this.calendar.get(Calendar.MONTH);
    final int maxDay = this.calendar.get(Calendar.DAY_OF_MONTH);

    this.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);
                }
            }
        });
}


来源:https://stackoverflow.com/questions/26033393/how-to-set-android-datepicker-dialog-max-date-to-current-date

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