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

自定义个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;
        }
    }

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

你可能感兴趣的:(Android 自定义的Dialog,点击确定按钮,让其根据条件判断消失与否)