具有取消按钮的 DatePickerDialog,并且在点击确认按钮时取得日期,不通过 OnDateSetListener 接口取得日期
Calendar calendar = Calendar.getInstance();
final DatePickerDialog datePicker = new DatePickerDialog(actInput.this, null,
calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH));
datePicker.setCancelable(true);
datePicker.setCanceledOnTouchOutside(true);
datePicker.setButton(DialogInterface.BUTTON_POSITIVE, "确认",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//确定的逻辑代码在监听中实现
DatePicker picker = datePicker.getDatePicker();
int year = picker.getYear();
int monthOfYear = picker.getMonth();
int dayOfMonth = picker.getDayOfMonth();
//Toast.makeText(actInput.this, String.format("%d-%d-%d", year, monthOfYear, dayOfMonth), Toast.LENGTH_LONG).show();
// 取得的 monthOfYear 是 Base 0 的
edtDate.setText(String.format("%d.%d.%d", year, monthOfYear + 1, dayOfMonth));
Juliandate = dbHelper.ToJulianDate(year, monthOfYear + 1, dayOfMonth);
}
});
datePicker.setButton(DialogInterface.BUTTON_NEGATIVE, "取消",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//取消什么也不用做
}
});
datePicker.show();