我知道这已被多次询问,但我找不到适合我的问题的答案。
所以我有一个活动,它有一个按钮,其文本是当前时间(访问活动的时间)。我可以单击按钮以显示一个 TimePickerDialog,我可以在其中更改时间,单击“设置”按钮,按钮将更新为新时间。到目前为止,一切都很好,很基础。
我的问题是,如果我启动 TimePicker,更改时间,单击取消按钮,然后再次启动 TimePicker,显示的时间是我取消的时间,而不是启动它的按钮的原始时间。如果我取消 TimePicker,我希望它忘记任何以前的数据。
这是我的代码:
protected Dialog onCreateDialog(int id) {
switch (id) {
case TIME_DIALOG_ID:
recordTime = new TimePickerDialog(this,mTimeSetListener, mHour, mMinute, true);
recordTime.setOnCancelListener(new OnCancelListener(){
@Override
public void onCancel(DialogInterface arg0) {
final Calendar c = Calendar.getInstance();
mHour = c.get(Calendar.HOUR_OF_DAY);
mMinute = c.get(Calendar.MINUTE);
recordTime.dismiss();
}
});
recordTime.setOnDismissListener(new OnDismissListener(){
@Override
public void onDismiss(DialogInterface arg0) {
recordTime.cancel();
recordTime.dismiss();
}
});
return recordTime;
}
return null;
}
// the callback received when the user sets the time in the dialog
private TimePickerDialog.OnTimeSetListener mTimeSetListener =
new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
mHour = hourOfDay;
mMinute = minute;
updateTimeDisplay();
}
};