여러 번 묻는 질문이지만 내 문제에 맞는 답을 찾을 수 없습니다.TimePickerDialog Cancel 단추가 데이터를 삭제하지 않음
그래서 '텍스트가 현재 시간 (활동이 액세스 된 시간) 인 버튼이있는 활동이 있습니다. 단추를 클릭하면 시간을 변경할 수있는 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();
}
};
고마워요. 나는 onPrepareDialog를 사용하는 것만으로 트릭을 발견했다. .setOnCancelListener를 단독으로 사용하면 원래 시간을 복원하지 못했습니다. – DaveSav
실행중인 코드는 https://stackoverflow.com/questions/4724781/timepickerdialog-cancel-button/47043247#47043247에서 확인할 수 있습니다. – Deepti