我正在使用下面的日期选择器示例
http://developer.android.com/guide/tutorials/views/hello-datepicker.html
现在,我想在单击日期选择器取消按钮时执行一些功能,但在日期选择器对话框中看不到取消事件
任何人都可以指导我如何实现这一点。
任何帮助都将不胜感激。
发布于 2011-02-13 07:25:39
下面是我是如何做到的:
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
}
}
});
发布于 2012-11-14 17:05:13
如果要根据用户是否选择了日期来执行不同的操作,可以使用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
}
}
};
发布于 2015-08-23 01:24:57
由于DatePickerDialog
是一个Dialog
,因此它支持以下内容:
setOnCancelListener(OnCancelListener listener)
setOnDismissListener(OnDismissListener listener)
使用这两个侦听器,您可以确定日期选择器对话框中的所有错误。第一个是回答问题,第二个是为了完成。
https://stackoverflow.com/questions/2928902
复制相似问题