切換
舊版
前往
大廳
主題

TimePickerDialog執行兩次TimeSet的解決方法

默思 | 2017-03-01 13:07:07 | 巴幣 0 | 人氣 212

今天使用TimePickerDialog時發現個怪異現象,就是它居然TimeSet會執行兩次!?

讓我不解阿,不管怎麼找都沒找到第二次觸發的事件

後來Google一下才發現TimePickerDialog在進入onStop()時,即Dialog消失前又會再TimeSet一次

解決這問題目前我想到2種方法:
第一種是Implements TimePickerDialog.OnTimeSetListener時,在onTimeSet方法裡判斷這是第幾次執行TimeSet,但這方法有個問題在於,若點擊Dialog以外的地方Dialog一樣會消失,這時也會執行TimeSet,畢竟使用者點擊Dialog以外的地方不代表他想要設定時間阿

第二種方法能解決第一種方法存在的問題,建立一個class繼承TimePickerDialog,並覆寫onStop()方法,覆寫只要將super.onStop()註解掉就好



這樣就能解決TimeSet兩次及點擊Dialog外的地方Dialog消失時執行TimeSet的問題

另外,這個問題我在測試時出現在Android 4.4.2版本,而Android 5.0似乎沒有這問題(我忘記測試了,ㄏㄏ)

總之開發時要注意一下這個問題

創作回應

更多創作