首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何检测datepicker对话框的取消单击?

如何检测datepicker对话框的取消单击?
EN

Stack Overflow用户
提问于 2010-05-28 20:26:01
回答 12查看 36.5K关注 0票数 24

我正在使用下面的日期选择器示例

http://developer.android.com/guide/tutorials/views/hello-datepicker.html

现在,我想在单击日期选择器取消按钮时执行一些功能,但在日期选择器对话框中看不到取消事件

任何人都可以指导我如何实现这一点。

任何帮助都将不胜感激。

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2011-02-13 07:25:39

下面是我是如何做到的:

代码语言:javascript
复制
  DatePickerDialog dialog = new DatePickerDialog(this,
              mDateSetListener,
              year, month, day);

  dialog.setButton(DialogInterface.BUTTON_NEGATIVE, getString(R.string.cancel), new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int which) {
       if (which == DialogInterface.BUTTON_NEGATIVE) {
          // Do Stuff
       }
    }
  });
票数 77
EN

Stack Overflow用户

发布于 2012-11-14 17:05:13

如果要根据用户是否选择了日期来执行不同的操作,可以使用onDismiss处理程序。一定要设置一个布尔值(例如,"isDataSet")来指示用户是否选择了日期。下面是一个例子:

代码语言:javascript
复制
// Date Picker Dialog
   public void showDatePickerDialog(View view) {
   int year, month, day;
   isDataSet = false;  // this is used by the onDismiss handler

// Set initial time period in DatePicker to current month
   calendarCurrent = Calendar.getInstance(); 
   month = calendarCurrent.get(Calendar.MONTH);
   day =   calendarCurrent.get(Calendar.DAY_OF_MONTH);
   year =  calendarCurrent.get(Calendar.YEAR);

   DatePickerDialog datePickerDialog = new DatePickerDialog(YourActivity.this, dateSetListener, year, month, day );
   datePickerDialog.setOnDismissListener(mOnDismissListener);
   datePickerDialog.show();
   datePickerDialog_visible=true;  //indicate dialog is up
 } // [END showDatePickerDialog] 

//onDismiss handler
private DialogInterface.OnDismissListener mOnDismissListener =
        new DialogInterface.OnDismissListener() {
            public void onDismiss(DialogInterface dialog) {
                datePickerDialog_visible=false;  //indicate dialog is cancelled/gone
                if (isDataSet) {  // [IF date was picked
                    //do something, date now selected
                } else {
                    //do someething else, dialog cancelled or exited
                }   
            }
        };
票数 8
EN

Stack Overflow用户

发布于 2015-08-23 01:24:57

由于DatePickerDialog是一个Dialog,因此它支持以下内容:

代码语言:javascript
复制
setOnCancelListener(OnCancelListener listener)
setOnDismissListener(OnDismissListener listener)

使用这两个侦听器,您可以确定日期选择器对话框中的所有错误。第一个是回答问题,第二个是为了完成。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2928902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档