Android 自定义的Dialog,点击确定按钮,让其根据条件判断消失与否

来源:互联网 发布:淘宝下单微信全额返现 编辑:程序博客网 时间:2024/05/22 17:45

自定义个Dialog,,但是点击确定按钮的时候,对话框会直接消失,这不符合我的需求,我需要在点击确定的时候,判断是否满足一定的条件,如果满足就让其消失,如果不满足,给个提示,但是对话框不消失,例如自定义的时间选择控件,如果选择的结束时间小于开始时间,给个提示,但是选择时间的这个Diolog,不让其消失。

很简单,重写dismiss方法即可。

  @Override    public void dismiss() {        if (notcanDis) {            Toast.makeText(context,"结束时间不能小于开始时间",Toast.LENGTH_SHORT).show();            notcanDis=false;//这里修改为false,是为了还原状态,为了保证按物理的返回键不会出现该提示        } else {            super.dismiss();        }    }

这个notcanDis这个变量是在点击确定的时候,判断是否满足条件来控制其是否为真。

 @Override    public void onClick(DialogInterface dialog, int which) {        switch (which) {            case BUTTON_POSITIVE:                if (mDateSetListener != null) {                    int startYear = start_datePicker.getYear();                    int startMoonth = start_datePicker.getMonth();                    int startDay = start_datePicker.getDayOfMonth();                    int endYear = end_datePicker.getYear();                    int endMoonth = end_datePicker.getMonth();                    int endDay = end_datePicker.getDayOfMonth();                    Date start = new Date(startYear, startMoonth, startDay);                    Date end = new Date(endYear, endMoonth, endDay);                    if (end.getTime() < start.getTime()) {                        notcanDis = true;                    } else {                        notcanDis = false;                        start_datePicker.clearFocus();                        end_datePicker.clearFocus();                        mDateSetListener.onDateSet(startYear,                                startMoonth, startDay, endYear,                                endMoonth, endDay);                    }                }                break;            case BUTTON_NEGATIVE:                cancel();                break;        }    }

至此,就实现了我的需求。。。
每日一语录:
只要路是对的,就不要害怕它是短暂还是遥远,你终究会到达。。。

阅读全文
0 0
原创粉丝点击