В настоящее время я использую средство выбора даты и времени, чтобы получить отправленные пользователем дату и время, а затем я установил в тексте элемента управления выбранные дату и время.
Я использую следующий код:
new DatePickerDialog(newlog3.this, d, calDT.get(Calendar.YEAR), calDT.get(Calendar.MONTH), calDT.get(Calendar.DAY_OF_MONTH)).show();
new TimePickerDialog(newlog3.this, t, calDT.get(Calendar.HOUR_OF_DAY), calDT.get(Calendar.MINUTE), true).show();
optCustom.setText(fmtDT.format(calDT.getTime()));
Теперь, когда вышеуказанный блок кода вызывает виджеты даты и времени и устанавливает текст, блок кода выполняется полностью, прежде чем пользователь сможет выбрать дату. Т.е. сначала он вызывает поле даты, затем время, а затем обновляет текст, все без какого-либо взаимодействия с пользователем. Я хотел бы, чтобы виджет даты ждал выполнения селектора времени, пока выбор даты не будет сделан, и я хотел бы, чтобы settext выполнялся только после того, как виджет времени будет сделан.
Как это возможно? Или есть более элегантное решение, которое ускользает от меня?
Редактировать: это код для DatePickerDialog / TimePickerDialog, который находится в классе:
DatePickerDialog.OnDateSetListener d=new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
calDT.set(Calendar.YEAR, year);
calDT.set(Calendar.MONTH, monthOfYear);
calDT.set(Calendar.DAY_OF_MONTH, dayOfMonth);
//updateLabel();
}
};
TimePickerDialog.OnTimeSetListener t=new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hourOfDay,
int minute) {
calDT.set(Calendar.HOUR_OF_DAY, hourOfDay);
calDT.set(Calendar.MINUTE, minute);
//updateLabel();
}
};
Заранее спасибо