[問題] 請教大家一個令我感到很ooxx的問題

看板AndroidDev作者 (別理我)時間11年前 (2012/10/04 17:14), 編輯推噓5(5011)
留言16則, 7人參與, 最新討論串1/1
如果觸發一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

10/04 17:17, , 1F
一個是摸到就執行,另一個是按下去放開時執行。
10/04 17:17, 1F

10/04 17:18, , 2F
印象中是這樣..... 只是,他可能只是寫程式時一時頭昏而已
10/04 17:18, 2F

10/04 17:39, , 3F
因為touch是碰到後就開始不斷的偵測,輪不到onClick去動哦
10/04 17:39, 3F

10/04 17:43, , 4F
你的標題有點... 以後有人要爬文會爬不到@@
10/04 17:43, 4F
因為看到人家這麼寫,我還要去修改~我心裡有點不舒服 所以才用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)

10/04 22:40, , 5F
你看一下他onTouch是不是return false;
10/04 22:40, 5F

10/04 22:41, , 6F
先跑onTouch但如果return false則不會到onClick
10/04 22:41, 6F

10/04 22:41, , 7F
有錯請指正,我沒實驗過,我夢到是如此
10/04 22:41, 7F
我比較納悶的是- 能單純化使用OnClickListener的事情,為什麼要複雜化使用OnTouchListener? 雖說OnTouchListener所包含的事件較多(move.up..etc) ※ 編輯: sweet00914 來自: 114.38.20.241 (10/04 22:51)

10/05 00:26, , 8F
這問題您該問寫的人或是開規格的人,我怎麼會知道咧?
10/05 00:26, 8F

10/05 00:26, , 9F
我連那功能是啥都不知道,怎麼會曉得該用哪個寫?
10/05 00:26, 9F

10/05 00:27, , 10F
問原始開規格的人才對吧,上來問實在有點奇怪
10/05 00:27, 10F

10/05 07:47, , 11F
其實說不定onClick是呼叫onTouch完成的
10/05 07:47, 11F

10/05 08:57, , 12F
我夢到是如此 我笑了XD (這是條沒營養的推文 蓋章
10/05 08:57, 12F

10/05 11:13, , 13F
我講反了 是onTouch return true才是攔下來
10/05 11:13, 13F

10/05 11:13, , 14F
攔下來就不會到onClick沒錯。
10/05 11:13, 14F

10/05 11:14, , 15F
BTW 我是讓原po感覺超營養的推文
10/05 11:14, 15F

10/05 11:14, , 16F
剛剛實驗結果就是如此
10/05 11:14, 16F
的確~回傳TRUE,就不會執行ONCLICK~ ※ 編輯: sweet00914 來自: 59.105.214.165 (10/05 15:05)
文章代碼(AID): #1GRLDO4j (AndroidDev)