添加setOnTouchListener使OnClickListener不再起作用

时间:2014-04-14 12:53:16

标签: android

我有一个实现OnTouchListener和OnClickListener的Activity。如果我将两个监听器添加到按钮,我得到OnClickListener不起作用,我的意思是onClick()方法,在Activity中实现,没有做任何事情。

我以这种方式分配这些听众。

button1.setOnClickListener(this);
button1.setOnTouchListener(this);

如果我删除

button1.setOnTouchListener(this)

然后onClick()方法开始工作。

1 个答案:

答案 0 :(得分:0)

您为视图设置的两个侦听器:

onClick()
  

来自View.OnClickListener。当用户触摸时调用此方法   该项目(在触摸模式下),或关注项目与   导航键或轨迹球并按下合适的"输入"钥匙或   按下轨迹球。

并且

onTouch()
  

来自View.OnTouchListener。当用户执行时调用此方法   适合作为触摸事件的动作,包括按下,发布或   屏幕上的任何移动手势(在项目的范围内)。

onTouch()

  

onTouch() - 返回一个布尔值来指示你的监听器   消耗这个事件。重要的是这个事件可以有   相互跟随的多个动作。 所以,如果你在什么时候返回false   收到了下行动作事件,表示你没有   消耗了这个事件,对后续行动也不感兴趣   来自此事件。因此,您不会被要求进行任何其他操作   在事件中,例如手指手势或最终的向上动作   事件。

简单地说,为了理解,返回false可以避免onTouch操作和onClick侦听器操作之间的冲突。

你应该经历的事情:
Input Event Listener Interfaces

[..这可能是某些研究和D的一部分,也许]