作者sweet00914 (别理我)
看板AndroidDev
标题[问题] 请教大家一个令我感到很ooxx的问题
时间Thu Oct 4 17:13:58 2012
如果触发一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
1F:推 LaPass:一个是摸到就执行,另一个是按下去放开时执行。 10/04 17:17
2F:→ LaPass:印象中是这样..... 只是,他可能只是写程式时一时头昏而已 10/04 17:18
3F:→ MosilW:因为touch是碰到後就开始不断的侦测,轮不到onClick去动哦 10/04 17:39
4F:→ 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)
5F:推 lovelycateye:你看一下他onTouch是不是return false; 10/04 22:40
6F:→ lovelycateye:先跑onTouch但如果return false则不会到onClick 10/04 22:41
7F:→ lovelycateye:有错请指正,我没实验过,我梦到是如此 10/04 22:41
我比较纳闷的是-
能单纯化使用OnClickListener的事情,为什麽要复杂化使用OnTouchListener?
虽说OnTouchListener所包含的事件较多(move.up..etc)
※ 编辑: sweet00914 来自: 114.38.20.241 (10/04 22:51)
8F:推 lovelycateye:这问题您该问写的人或是开规格的人,我怎麽会知道咧? 10/05 00:26
9F:→ lovelycateye:我连那功能是啥都不知道,怎麽会晓得该用哪个写? 10/05 00:26
10F:→ kewang:问原始开规格的人才对吧,上来问实在有点奇怪 10/05 00:27
11F:推 givemepass:其实说不定onClick是呼叫onTouch完成的 10/05 07:47
12F:→ MiaShopgirl:我梦到是如此 我笑了XD (这是条没营养的推文 盖章 10/05 08:57
13F:推 lovelycateye:我讲反了 是onTouch return true才是拦下来 10/05 11:13
14F:→ lovelycateye:拦下来就不会到onClick没错。 10/05 11:13
15F:→ lovelycateye:BTW 我是让原po感觉超营养的推文 10/05 11:14
16F:→ lovelycateye:刚刚实验结果就是如此 10/05 11:14
的确~回传TRUE,就不会执行ONCLICK~
※ 编辑: sweet00914 来自: 59.105.214.165 (10/05 15:05)