DatePickerDialog +/-按钮的监听器

时间:2014-08-18 04:29:09

标签: android android-dialog android-datepicker

我目前在Android应用中使用DatePickerDialog

每个人都知道,对话框有三个EditText s:1)(第2天),第3个月)。并且有三个+和 - 按钮可以移动到所选字段的前后。我需要知道" +"是否存在任何监听器。和" - "对话框中的按钮?

这是因为,在我的应用中,我不希望用户使用对话框在当前日期之前选择之前的日期。所以如果" - "单击按钮,应检查对话框中的日期是否小于当前日期。所以我需要一个倾听者,因为" - "对话框的按钮。

此外,我正在为从Froyo到KitKat的所有平台开发此应用程序。我听说setMinDate()有一个DatePicker。但它只能从HoneyComb获得。

2 个答案:

答案 0 :(得分:2)

尝试覆盖onDateChnaged()函数,这是示例:

DatePickerDialog mDatePickerDialog = new DatePickerDialog(this, mDateSetListener,mYear, mMonth, mDay){
                @Override
                public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth){
                    // this function will call when user click on '+' or '-'. Apply validation here. you can call view.updateDate(mYear, mMonth, mDay); if u don't want to accept date that user trying to select by pressing +/- 
                    final Calendar c = Calendar.getInstance();
                    mYear = c.get(Calendar.YEAR);
                    mMonth = c.get(Calendar.MONTH);
                    mDay = c.get(Calendar.DAY_OF_MONTH);
                    /* this validation allow user to enter date less then current date */
                    if (year > mYear)
                        view.updateDate(mYear, mMonth, mDay);

                if (monthOfYear > mMonth && year == mYear)
                    view.updateDate(mYear, mMonth, mDay);

                if (dayOfMonth > mDay && year == mYear && monthOfYear == mMonth)
                    view.updateDate(mYear, mMonth, mDay);
            }
        };

DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() { public void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) { // Add your code here to handle selected date event by user

} };

答案 1 :(得分:0)

您真的无法在setMinDate下为api实施honeyComb,但您仍然可以使用设计为在其中具有datePickerDialog方法功能的后向移植setMinDate来自froyo及以上的工作,您可以查看此github project

将该项目用作froyo到honeyComb的DatePicker对话框,并使用android的常规默认DatePicker以及以上版本。