安卓:日期选取器不应该接受当前日期和未来日期 [英] Android: Date Picker Should not accept current date and future dates

查看:134
本文介绍了安卓:日期选取器不应该接受当前日期和未来日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何从接受当前和未来日期的android我使用谷歌API ...任何想法,限制的日期选择器..?

解决方案
  1. 由于API级别11存在的一个方法:

      DatePicker.setMaxDate(长的maxDate)
     

  2. 如果它在previous版本一起使用,用这个方法:

     公共无效的init(INT年,INT monthOfYear,INT DAYOFMONTH,DatePicker.OnDateChangedListener onDateChangedListener)
     

您可以通过自己的OnDateChangedListener其中复位无效日期到最新有效的一种:

 的DatePicker选择器= ...
INT年= ...
INT monthOfYear = ...
INT DAYOFMONTH = ...
picker.init(年,monthOfYear,DAYOFMONTH,新DatePicker.OnDateChangedListener(){

    @覆盖
    公共无效onDateChanged(DatePicker的观点,年整型,诠释monthOfYear,诠释DAYOFMONTH){
        //检查当前的日期是确定
        布尔dateOk = ...
        如果(!dateOk){
            //正确的日期,但可以肯定的修正日期确定
            // =>否则,你可能会得到无穷的递归
            年= ...
            monthOfYear = ...
            DAYOFMONTH = ...
            //更新日期部件与修正日期值
            view.updateDate(年,monthOfYear,DAYOFMONTH);
        }
    }
});
 

How to restrict date picker from accepting current and future dates in android i am using google api...any idea..?

解决方案

  1. Since API level 11 there is a method for that:

    DatePicker.setMaxDate(long maxDate)
    

  2. If it has to work in previous versions, use this method:

    public void init(int year, int monthOfYear, int dayOfMonth, DatePicker.OnDateChangedListener onDateChangedListener)
    

You could pass your own OnDateChangedListener which "resets" invalid dates to the newest valid one:

DatePicker picker = ...
int year = ...
int monthOfYear = ...
int dayOfMonth = ...
picker.init(year, monthOfYear, dayOfMonth, new DatePicker.OnDateChangedListener() {

    @Override
    public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
        // check if current date is OK
        boolean dateOk = ...
        if (!dateOk) {
            // correct the date, but be sure the corrected date is OK
            // => otherwise you might get endless recursion
            year = ...
            monthOfYear = ...
            dayOfMonth = ...
            // update the date widget with the corrected date values
            view.updateDate(year, monthOfYear, dayOfMonth);
        }
    }
});

这篇关于安卓:日期选取器不应该接受当前日期和未来日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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