我在Android中使用了一个datepicker让用户选择日期.我希望它做一件事,如果用户选择一个日期并设置它(我有那个工作正常)然后清除某个文本字段,如果用户按下datepicker上的取消按钮(打开datepicker但然后取消它).
我一直在努力的方法是做一个
private DatePickerDialog.OnCancelListener mDateCancelListener =
new DatePickerDialog.OnCancelListener() {
public void onCancel(DialogInterface dialog) {
timeClear(); //method that clears text field
}
};
Run Code Online (Sandbox Code Playgroud)
那我呢
TimePickerDialog timeDialog = new TimePickerDialog(this,
mTimeSetListener,
c.get(Calendar.HOUR),
c.get(Calendar.MINUTE),
false);
timeDialog.setOnCancelListener(mTimeCancelListener);
Run Code Online (Sandbox Code Playgroud)
附加监听器.
我的问题是,如果用户按下后退按钮,则监听器工作,但如果他们按下取消按钮则不行.我尝试使用一个dismiss监听器,这是有效的,除了它即使我设置或取消datepicker也会消失!
当且仅当我在我的日期选择器上按下取消按钮时,我需要做什么让某些事情发生?
我用TimePickerDialog的onTimeSet()方法.我添加了一个cancel按钮onClickListener.
我的问题是,当我单击cancel按钮时,会调用onTimeSet()方法.为什么?有什么方法可以解决这个问题?
// Create timePicker and set listener
timeListener = new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
};
timePicker = new TimePickerDialog(RS_CreateTripActivity.this,
timeListener, hour, min, false);
timePicker.setCanceledOnTouchOutside(false);
timePicker.setCancelable(false);
// Set negative button click listener
timePicker.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
datePicker.dismiss();
}
});
Run Code Online (Sandbox Code Playgroud)
我尝试通过设置positive按钮,onClickListener但在那种情况下,我无法用户选择时间.如果有人告诉我如何获得时间onClickListener,那么它也将解决我的问题.