看板 AndroidDev 關於我們 聯絡資訊
如果觸發一Button的事件,我們一般都會使用 setOnClickListener的事件去驅動, 但最近看到一種寫法就是有人為了觸發一Button事件, 用了onTouchListener的事件去驅動。 (心裡想說:好吧,既然你這麼寫了,我就依照你的寫法。) ============================================== 接著再看別人的專案, 同一個Button的事件,他寫了 btn.setOnClickListener(this); -> run functionA btn.setOnTouchListener(this); -> run functionA 這裡我就困惑了~~~ 更讓我詫異的是- 當我按下Button後, onclick的事件不會執行,而是去執行ontouch的事件。 ============================================== 最後小弟弟想請教大家, 當初有人會這麼寫的原因有可能是什麼呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.105.214.165
LaPass:一個是摸到就執行,另一個是按下去放開時執行。 10/04 17:17
LaPass:印象中是這樣..... 只是,他可能只是寫程式時一時頭昏而已 10/04 17:18
MosilW:因為touch是碰到後就開始不斷的偵測,輪不到onClick去動哦 10/04 17:39
nonebelieve:你的標題有點... 以後有人要爬文會爬不到@@ 10/04 17:43
因為看到人家這麼寫,我還要去修改~我心裡有點不舒服 所以才用OOXX來表達我的心情= =" ※ 編輯: sweet00914 來自: 59.105.214.165 (10/04 18:38) 我在android sdk上找到 http://0rz.tw/Pzz1S View.OnTouchListener http://0rz.tw/DKmf4 View.OnClickListener 這兩者之間的差異了。 所以我猜應該是新手上路,要不就是寫程式寫到昏頭了ꄰ.0 ※ 編輯: sweet00914 來自: 59.105.214.165 (10/04 19:54)
lovelycateye:你看一下他onTouch是不是return false; 10/04 22:40
lovelycateye:先跑onTouch但如果return false則不會到onClick 10/04 22:41
lovelycateye:有錯請指正,我沒實驗過,我夢到是如此 10/04 22:41
我比較納悶的是- 能單純化使用OnClickListener的事情,為什麼要複雜化使用OnTouchListener? 雖說OnTouchListener所包含的事件較多(move.up..etc) ※ 編輯: sweet00914 來自: 114.38.20.241 (10/04 22:51)
lovelycateye:這問題您該問寫的人或是開規格的人,我怎麼會知道咧? 10/05 00:26
lovelycateye:我連那功能是啥都不知道,怎麼會曉得該用哪個寫? 10/05 00:26
kewang:問原始開規格的人才對吧,上來問實在有點奇怪 10/05 00:27
givemepass:其實說不定onClick是呼叫onTouch完成的 10/05 07:47
MiaShopgirl:我夢到是如此 我笑了XD (這是條沒營養的推文 蓋章 10/05 08:57
lovelycateye:我講反了 是onTouch return true才是攔下來 10/05 11:13
lovelycateye:攔下來就不會到onClick沒錯。 10/05 11:13
lovelycateye:BTW 我是讓原po感覺超營養的推文 10/05 11:14
lovelycateye:剛剛實驗結果就是如此 10/05 11:14
的確~回傳TRUE,就不會執行ONCLICK~ ※ 編輯: sweet00914 來自: 59.105.214.165 (10/05 15:05)