自定义个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;
}
}
至此,就实现了我的需求。。。
每日一语录:
只要路是对的,就不要害怕它是短暂还是遥远,你终究会到达。。。