6
은 내가 아는 한, 이전에 젤리 콩에 버전, TimePickerDialog를 사용하는 경우 설정 및 이 버튼을 취소했다. 젤리는 만을 가지고 있습니다 버튼을 누릅니다.Android JellyBean TimePickerDialog에서 취소 기능을 사용할 수 있습니까?
은 그냥 이 버튼을 완료하고 대화 외부를 클릭하여 대화 상자를 닫습니다 수 있지만 이을 완료하거나 대화 외부 눌러 경우 내 onTimeSetListener
가 호출됩니다 떠날 수 있습니다.
this stackoverflow question은 DatePickerDialog을 사용할 때 버그가 있다는 것을 발견했습니다. DatePickerDialog을 사용하여 문제를 해결하려면 onDateSetListener
을 null
으로 설정하고 BUTTON_POSITIVE
(설정) 및 BUTTON_NEGATIVE
(취소) onClick 메서드를 처리하기위한 버튼을 구현해야합니다. 버튼 라고을 설정했을 때이 같은 DatePicker에서 값에 액세스 할 수 있기 때문에 어느 괜찮이
int yearPicked = dateDlg.getDatePicker().getYear();
int monthPicked = dateDlg.getDatePicker().getMonth();
int dayPicked = dateDlg.getDatePicker().getDayOfMonth();
그래서 onDateSetListener
를 사용할 필요가 없습니다,하지만 난 것인지 누를 때, 그것은 다시 호출 될 것이다 설정 또는 취소.
BUTTON_POSITIVE
의 onclick 방법 안에, 내가 DatePickerDialog로, 이전과 TimePicker을 시간과 분 값을 액세스 할 수있다은 DatePicker을 제공합니다. 다시 onTimeSetListener
을 사용하면 아무 것도 누르지 않아도 호출됩니다. Calendar cal = Calendar.getInstance();
int hour = cal.get(Calendar.HOUR_OF_DAY);
int min = cal.get(Calendar.MINUTE);
final TimePickerDialog timeDlg = new TimePickerDialog(PreferencesActivity.this, null, hour, min, true);
// Make the Set button
timeDlg.setButton(DialogInterface.BUTTON_POSITIVE, "Set", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
if (which == DialogInterface.BUTTON_POSITIVE) {
// CANNOT ACCES THE VALUES
Toast.makeText(PreferencesActivity.this, "Set", Toast.LENGTH_SHORT).show();
}
}
});
// Set the Cancel button
timeDlg.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
if (which == DialogInterface.BUTTON_NEGATIVE) {
Toast.makeText(PreferencesActivity.this, "Cancel", Toast.LENGTH_SHORT).show();
}
}
});
timeDlg.show();
음, 'TimePickerDialog.OnTimeSetListener'를 등록하여 입력 된 값을 캡처 할 수는 있지만, 음수 버튼을 두드리면 아무 것도하지 않겠습니까? –
그게 문제인데, OnTimeSetListener는 양수, 음수, 뒤로 버튼을 누르면 호출됩니다. – Marko
동일한 문제가 있습니다. 아래에서 허용되는 대답은 이전 버전과 호환되지 않습니다 (사전 jb). Sice 나는 sdk 8+가 필요했고, 확장 된 조각 대화 상자에서 부울 값으로 해결하고 onClick()을 재정의했습니다. – auval