2 ljz0826 ljz0826 于 2016.03.15 15:20 提问

DatePickerDialog中为什么点击屏幕外不消失?

final Calendar objTime = Calendar.getInstance();
int iYear = objTime.get(Calendar.YEAR);
int iMonth = objTime.get(Calendar.MONTH);
int iDay = objTime.get(Calendar.DAY_OF_MONTH);

    DatePickerDialog datePickerDialog = new DatePickerDialog(QueryDateActivity.this, DatePickerListener, iYear, iMonth, iDay);
    datePickerDialog.setCanceledOnTouchOutside(true);
    datePickerDialog.show();

            我已经设置为true了 可是还是不消失为什么?
            /**下面是原代码
            */
               final DatePickerDialog mDialog_start = new DatePickerDialog(this, null,
                    con_year_start, con_month_start, con_day_start);
            //手动设置按钮
            mDialog_start.setButton(DialogInterface.BUTTON_POSITIVE, "完成", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    //通过mDialog.getDatePicker()获得dialog上的DatePicker组件,然后可以获取日期信息
                    DatePicker datePicker = mDialog_start.getDatePicker();
                    int year = datePicker.getYear();
                    int month = datePicker.getMonth();
                    int day = datePicker.getDayOfMonth();
                    tv_start.setText(year+"/"+months[month]+"/"+day);
                    con_year_start = year;
                    con_month_start = month;
                    con_day_start = day;
                }
            });
            //取消按钮,如果不需要直接不设置即可
            mDialog_start.setButton(DialogInterface.BUTTON_NEGATIVE, "取消", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    mDialog_start.dismiss();
                }
            });
            mDialog_start.setTitle("请选择开始时间");
            mDialog_start.setCanceledOnTouchOutside(true);
            mDialog_start.show();

2个回答

lxk_1993
lxk_1993   Rxr 2016.03.15 19:06

你不是设置了取消吗 干嘛要有强迫症 再说 用户也会按回退

ljz0826
ljz0826 被你说中了,就是有强迫症。
一年多之前 回复
luochoudan
luochoudan   Ds   Rxr 2016.03.15 20:11

把setCancelable()也设置一下,另外看一下是不是重写了ondispatchevent()或者onTouchEvent之类的方法。

ljz0826
ljz0826 setCancelable之前也试过了,事件分发没有使用,先不管了,就这样吧。
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!