版權聲明:本文爲博主原創文章,未經博主允許不得轉載。
Android L 系統手機上使用 TimePickerDialog 注意問題:
問題描述如圖:
問題原因:輸入框焦點
Android L (5.0) 下TimePickerDialog 如果是使用"+","-"進行時間調整,那麼點擊"確定"後會正常保存,如果嘗試手動輸入時需等到釋放焦點後才能正常保存。因此需要在點擊"確定"之前對焦點進行釋放處理。
設置當前時間:
Calendar c = Calendar.getInstance();
c.setTimeInMillis(System.currentTimeMillis());
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
原始片段代碼:
TimePickerDialog dialog = new TimePickerDialog(this, timeSetListener,
hour ,
minute , 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();