我的节目经典android.app.TimePickerDialog
又听OnTimeSetListener.onTimeSet()
。从 Android 4.3 迁移到 5.1 后,我注意到使用键盘输入分钟并按“确定”会导致传递给onTimeSet()
处理程序的值错误。但是,如果我Enter在对话框中按下 OK 按钮之前按下键盘(或单击小时输入或仅使用微调器),则值是正确的。
我认为这与NumberPicker
用户按下 OK 时焦点未清除有关。
使用微调器几分钟或额外按下Enter键盘很不方便。如何仅通过 OK 按钮接受我的值?
import android.app.*;
...
private final DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
...
}
}
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case TIMEPICKER_DIALOG:
return new TimePickerDialog(ChannelActivity.this, mTimeSetListener, day.get(Calendar.HOUR_OF_DAY), day.get(Calendar.MINUTE), true);
}
return super.onCreateDialog(id);
}