我有一个实现OnTouchListener和OnClickListener的Activity。如果我将两个监听器添加到按钮,我得到OnClickListener不起作用,我的意思是onClick()方法,在Activity中实现,没有做任何事情。
我以这种方式分配这些听众。
button1.setOnClickListener(this);
button1.setOnTouchListener(this);
如果我删除
button1.setOnTouchListener(this)
然后onClick()方法开始工作。
答案 0 :(得分:0)
您为视图设置的两个侦听器:
onClick()
来自View.OnClickListener。当用户触摸时调用此方法 该项目(在触摸模式下),或关注项目与 导航键或轨迹球并按下合适的"输入"钥匙或 按下轨迹球。
并且
onTouch()
来自View.OnTouchListener。当用户执行时调用此方法 适合作为触摸事件的动作,包括按下,发布或 屏幕上的任何移动手势(在项目的范围内)。
onTouch()
,
onTouch() - 返回一个布尔值来指示你的监听器 消耗这个事件。重要的是这个事件可以有 相互跟随的多个动作。 所以,如果你在什么时候返回false 收到了下行动作事件,表示你没有 消耗了这个事件,对后续行动也不感兴趣 来自此事件。因此,您不会被要求进行任何其他操作 在事件中,例如手指手势或最终的向上动作 事件。
简单地说,为了理解,返回false可以避免onTouch操作和onClick侦听器操作之间的冲突。
你应该经历的事情:
Input Event Listener Interfaces
[..这可能是某些研究和D的一部分,也许]