我有点怀疑.我正在使用图像按钮(例如媒体播放器中的播放图标).我想知道我应该使用哪个动作侦听器,onClickListener或onTouchListener.这两个动作之间有什么区别,我应该何时使用它们.
Mik*_*ass 27
@ vishy1618的答案具有这个主题的关键洞察力(试图将其作为评论留在那里,但是太长了).
从概念上讲,onClick只是围绕特定触摸事件序列的"包装器" - 向下,无阻力,向上.因此,将onTouch与onClick进行比较只是一个低级API(原始触摸事件)与高级API(逻辑用户"点击").
但是,一个重要的兼容性问题:在Android中,onClick也可以通过KEYBOARD(或轨迹球,或正在使用的任何替代输入/硬件设备)触发.但是(afaict)不支持通过除触摸屏之外的任何其他输入设备触发触摸事件.
因此,如果您仅针对触摸事件编写UI代码,则隐式需要触摸屏.如果你坚持onClick,你的应用程序理论上可以在非触摸设备上工作.
当然,所有"兼容"的Android手机目前都有触摸屏......所以这实际上没有实际意义.但是,如果您希望您的应用在非电话硬件上运行,这可能值得考虑.
这里有一些很好的讨论:
https://groups.google.com/forum/?fromgroups=#!topic/android-beginners/cjOVcn0sqLg
Par*_*ani 16
onClickListener 每当引发任何视图的click事件时都会使用它,例如:单击Button,ImageButton的事件.
onTouchListener 只要您想要实现触摸功能,就可以使用,例如,如果您想要获得完全触摸的屏幕坐标.
只需同时检查的官方文档:onClickListener和onTouchListener.
因此,从官方文档来看,两者的定义是:
onClickListener是使用键盘或触摸屏触发的许多事件.它们在特定视图上执行,整个视图接收事件.相比之下,onTouchListener仅用于触摸屏事件,无法通过键盘或任何其他输入触发.它们通常还会收到相应的触摸信息,如x,y corrdinates等.
我认为onClickListener适用于您的应用程序,如果您没有使用更复杂的输入,如手势等.
| 归档时间: |
|
| 查看次数: |
18626 次 |
| 最近记录: |