我有点怀疑。我正在使用图像按钮(例如媒体播放器中的播放图标)。我想知道我应该使用哪个 Action 监听器,onClickListener 或 onTouchListener。这两个 Action 有什么区别,什么时候应该使用。
最佳答案
@vishy1618 的回答具有该线程的关键见解(试图将其作为评论留在那里,但太长了)。
从概念上讲,onClick 只是围绕特定触摸事件序列的“包装器”——向下、无拖动、向上。因此,比较 onTouch 与 onClick 只是低级 API(原始触摸事件)与高级 API(逻辑用户“点击”)。
但是,一个重要的兼容性问题:在 Android 中,onClick 也可以由 KEYBOARD(或轨迹球,或正在使用的任何替代输入/硬件设备)触发。但是(afaict)不支持通过触摸屏以外的任何其他输入设备触发触摸事件。
因此,如果您专门针对触摸事件编写 UI 代码,那么您就隐含地需要触摸屏。而如果你坚持 onClick,你的应用理论上可以在非触摸设备上运行。
当然,目前所有“兼容”的 Android 手机都有触摸屏……所以这实际上是没有实际意义的。但如果您希望您的应用在非手机硬件上运行,这可能值得考虑。
这里有一些很好的讨论:
How to determine if an Android device has a touchscreen?
https://groups.google.com/forum/?fromgroups=#!topic/android-beginners/cjOVcn0sqLg
关于android - Android中点击和触摸监听器的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8046845/