监听器用于对特定事件监听,一旦监听到特定的事件,则有监听器截获该事件,并回调自身的特定方法对事件进行处理。根据输入方式的不同,View组件将截获的事件分为6种,对应一下6种事件监听器接口:
(1)OnClickListener接口: 此接口处理的是单击事件,例如在View上进行单击动,当单击事件发生时,OnClickListener接口会回调public void onClick(View v)方法对事件进行处理。其中参数v指的是发生单击事件的View组件。
(2)OnLongClickListener接口: 此接口处理的是长按事件,当长时间按住某个 View组件时触发该事件。其对应得回调方法为 public boolean onLongClick(View v),当返回值为true时,表示已经处理完此事件,若事件未处理完,则返回false,该事件还可以被其他监听器捕获并处理。
(3)OnFocusChangeListener接口:此接口处理的是长按事件,当长时间按住某个View组件时触发该事件,其对应的回调方法是 public void onFocusChange(View v, Boolean hasFocus), 其中参数v表示产生事件的事件源,hasFocus表示事件源的状态,即是否获得焦点。
(4)OnKeyListener接口:此接口用于对手机键盘事件进行监听,当View获得焦点并且键盘敲击时会触发该事件,其对应的回调方法为public boolean onKey(View v, int keyCode, KeyEvent event), 其中keyCode为键盘码,参数event便为键盘事件封装类的对象。
(5)OnTouchListener接口: 此接口是用来处理手机屏幕事件,当在View的范围内触摸、按下、抬起、滑动等动作时都会触发该事件,并触发该接口中的回调方法,其对应的回调方法:public boolean onTouch(View v, MotionEvent event),对应的参数同上。
(6) OnCreateContextMenuListener接口:此接口用于处理上下文菜单被创建的事件,其对应的回调方法为:
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo info)其中menu为事件的上下文菜单
参数info是该对象中封装了有关上下文菜单的其他信息。