如何阻止只过去的DatePicker日期在android系统 [英] How to block only past dates in DatePicker in android

查看:111
本文介绍了如何阻止只过去的DatePicker日期在android系统的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何阻止在android系统中的DatePicker只有过去的日期?
现在用的样品code。在过去的日期和当前日期被阻塞,
我只需要过去的日期在这里得到不阻塞当前日期是我的code

 私人DatePickerDialog.OnDateSetListener mDateSetListener =
        新DatePickerDialog.OnDateSetListener(){            公共无效onDateSet(查看的DatePicker,诠释yearSelected,
                                  INT monthOfYear,诠释请将dayOfMonth){
               年= yearSelected;
               月= monthOfYear;
               天=请将dayOfMonth;
               INT n_mon = monthOfYear + 1;
               business_date_et.setText(日+ - + n_mon + - +年);
            }
        };
        私人TimePickerDialog.OnTimeSetListener mTimeSetListener =
            新TimePickerDialog.OnTimeSetListener(){                公共无效onTimeSet(TimePicker观点,诠释HOUROFDAY,诠释分钟){
                    小时= HOUROFDAY;
                    分钟=分钟;                    business_time_et.setText(小时+:+分钟);
                  }
            };
            保护对话框onCreateDialog(INT ID){
                开关(ID){
                案例DATE_DIALOG_ID:                    DatePickerDialog DA =新DatePickerDialog(这一点,mDateSetListener,
                            mYear,mMonth,MDAY);
                    日历C = Calendar.getInstance();                    c.add(Calendar.DATE,1);
                    日期newDate = c.getTime();
                    。da.getDatePicker()setMinDate(newDate.getTime());
                    返回DA;                案例TIME_DIALOG_ID:
                    返回新TimePickerDialog(这一点,
                            mTimeSetListener,mHour,mMinute,FALSE);                }
                返回null;
            }


解决方案

您也可以尝试这样的:

  da.getDatePicker()setMinDate(newDate.getTime() - (newDate.getTime()%(24 * 60 * 60 * 1000)))。

有基本上减去由当前的日子的偏移的当前日期。

how to block only past date in DatePicker in android? Am using sample code in that past date and current date getting blocked , I need only past date get blocked not current date here is my code

private DatePickerDialog.OnDateSetListener mDateSetListener =
        new DatePickerDialog.OnDateSetListener() {

            public void onDateSet(DatePicker view, int yearSelected,
                                  int monthOfYear, int dayOfMonth) {
               year = yearSelected;
               month = monthOfYear;
               day = dayOfMonth;
               int n_mon = monthOfYear+1;


               business_date_et.setText(day+"-"+n_mon+"-"+year);
            }
        };


        private TimePickerDialog.OnTimeSetListener mTimeSetListener =
            new TimePickerDialog.OnTimeSetListener() {

                public void onTimeSet(TimePicker view, int hourOfDay, int min) {
                    hour = hourOfDay;
                    minute = min;

                    business_time_et.setText(hour+":"+minute);
                  }
            };


            protected Dialog onCreateDialog(int id) {
                switch (id) {
                case DATE_DIALOG_ID:

                    DatePickerDialog da = new DatePickerDialog(this, mDateSetListener,
                            mYear, mMonth, mDay);
                    Calendar c = Calendar.getInstance();

                    c.add(Calendar.DATE, 1);
                    Date newDate = c.getTime();
                    da.getDatePicker().setMinDate(newDate.getTime());
                    return da;

                case TIME_DIALOG_ID:
                    return new TimePickerDialog(this,
                            mTimeSetListener, mHour, mMinute, false);

                }
                return null;
            }

解决方案

You can also try this:

da.getDatePicker().setMinDate(newDate.getTime()-(newDate.getTime()%(24*60*60*1000)));

It basically subtracts the current date by the current offset of the day.

这篇关于如何阻止只过去的DatePicker日期在android系统的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆