在 Android 中拦截用户交互的事件不止一种,我们可能已经注意到前面使用过的一些公共回调方法例如 setOnClickListener
, onTouchEvent
等,有时候我们在自定义视图的时候需要去扩展或者覆盖某些事件,问题远比你想象的复杂。
监听事件
监听事件是视图 View 类中包含的单个回调方法接口,当你注册了某个事件的监听器后,当用户触发 UI 操作就会回调此方法,主要包括如下几个监听器:
- onClick() 点击事件,来自
View.OnClickListener
接口。 - onLongClick() 长按事件,来自
View.OnLongClickListener
接口。 - onFocusChange() 焦点变化事件,来自
View.OnFocusChangeListener
接口。 - onKey() 硬件键盘事件,来自
View.OnKeyListener
接口。 - onTouch() 触摸事件,来自
View.OnTouchListener
接口。 - onCreateContextMenu() 构建上下文菜单事件,来自
View.OnCreateContextMenuListener
接口。
我们先来看看比较常见的两个事件,点击和长按事件:
|
|