在自定義Dialog中添加DatePicker寫一個日期選擇控件時(如下圖所示),遇到這樣一個問題,就是使用下圖中日期選擇控件自帶的加減号進行年月日的增減時,點選确認按鈕傳回的日期是我們想要的;
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISN1cTOxUTN3EDMygDM2EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
但是像下圖中直接編輯年月日後,點選确認按鈕,傳回的日期卻不是我們想要的,還是會傳回編輯之前的日期,這個問題剛開始覺得非常的詭異,後來查找資料發現:就是當使用者點選“确定”的時候,将Datepicker的焦點清除,就能擷取到使用者輸入的日期。試了下,果然有效果;就是在點選“确定”的時候添加:datepicker.clearFocus();
原因:DatePicker中Edittext,是封裝在NumberPicker中的,當焦點變化時,進行文本設定。是以在你點選擷取日期前,清空下這個DatePicker控件的焦點即可。