如何检测日期选择器对话框的取消点击?

新手上路,请多包涵
阅读 405
2 个回答

我是这样做的:

   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
       }
    }
  });

原文由 esilver 发布,翻译遵循 CC BY-SA 2.5 许可协议

如果您想根据用户是否选择日期执行不同的操作,您可以使用 onDismiss 处理程序。请务必设置一个布尔值(例如,“isDataSet”)以指示用户是否选择了日期。这是一个例子:

 // 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
                }
            }
        };

原文由 PeteH 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题