Android 捕捉时间选择器的取消或取消
我不确定如何为下面的代码实现onCancel/onDismiss侦听器。有人能帮忙吗Android 捕捉时间选择器的取消或取消,android,Android,我不确定如何为下面的代码实现onCancel/onDismiss侦听器。有人能帮忙吗 private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() { public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
private TimePickerDialog.OnTimeSetListener mTimeSetListener =
new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
mHour = hourOfDay;
mMinute = minute;
time = ""+mHour+":"+mMinute;
notifications();
}
};
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case TIME_DIALOG_ID:
return new TimePickerDialog(this,
mTimeSetListener, mHour, mMinute, false);
}
return null;
}
编辑:工作代码如下。当您单击“设置”时,它会执行它的操作。任何其他内容都会删除复选框
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case TIME_DIALOG_ID:
TimePickerDialog myTime = new TimePickerDialog(this,mTimeSetListener, mHour, mMinute, false);
myTime.setOnCancelListener(new OnCancelListener(){
CheckBox checkBox = (CheckBox) findViewById(R.id.checkBox1);
public void onCancel(DialogInterface dialog) {
Log.d("IN HERE","HERE2");
cbChecked = false;
notValue = 0;
checkBox.setChecked(false);
checkBox.setText("Use reminders");
}
});
return myTime;
}
return null;
}
您不应该像在
onCreateDialog
方法上那样直接返回TimePickerDialog
,而应该实例化它并添加一个onCancel
侦听器
...
case TIME_DIALOG_ID:
TimePickerDialog myTime = new TimePickerDialog(this,yourListener, h, m, false);
myTime(new DialogInterface.OnCancelListener(){
@Override
public void onCancel(DialogInterface arg0) {
//your stuff
}
);//For cancel button
return myTime; //Return the dialog
break;
...
谢谢你的帮助。我还是有个错误。请看一下我问题中编辑过的部分好吗。有时由于某种原因,
onCancel
事件由onDismiss
方法处理,因此请尝试使用setOnCancelListener
和setOnDismissListener
做同样的事情(不确定这是否是实际名称)现在就放进去了。它只是没有从复选框中删除复选框,这完全是另一个问题。不过还是谢谢你。嗯,事实上。即使为选择器单击了“set”,也会调用dismise。所以cancel将是唯一有效的。