TimePickerDialog 5.0以上無法直接輸入

 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();


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章