android TimePickerDialog 键盘输入不响应问题

TimePickerDialog,键盘输入不响应

图片说明

使用android系统提供的TimePickerDialog控件,键盘输入不起作用(只有三星手机起作用),我现在使用第三方库中的TimePickerDialog控件,其实现效果跟android原始系统(参照nexus5手机)差不多,

问题原因:输入框焦点

Android L (5.0) 下TimePickerDialog 如果是使用"+","-"进行时间调整,那么点击"确定"后会正常保存,如果尝试手动输入时需等到释放焦点后才能正常保存。因此需要在点击"确定"之前对焦点进行释放处理。

原始片段代码:

TimePickerDialog dialog = new TimePickerDialog(this, timeSetListener, 10, 30, true);
dialog.show();

修改后片段代码:

TimePickerDialog dialog = new TimePickerDialog(this, timeSetListener, 10, 30, true){
@Override
public void onClick(DialogInterface dialog, int which) {

//焦点释放处理
if (dialog instanceof TimePickerDialog) {
((TimePickerDialog)dialog).getWindow().getDecorView().clearFocus();
}
super.onClick(dialog, which);
}
};
dialog.show();