Android系统应用java中的事件处理机制,包括事件(鼠标事件、键盘事件、触摸事件或鼠标移动事件)、事件源(产生事件的组件)和事件监听器(组件产生事件时响应的接口)三个方面
一、事件处理机制:
android中的两个事件处理机制:
1.基于监听器的事件处理,为界面组件绑定特定监听器。该模型中主要涉及以下三类对象
(1)event object——事件产生式具体的“事件”,用于listener的响应方法之中,作为参数,一般存在于listerner的方法之中
(2)event source——具体接受事件的实体
(3)event listener——事件监听器,当有对应的event object产生时,调用相应方法进行处理(也叫回调)。
①View.OnClickListener——单击事件,当某个组件被按下时产生事件,处理方法onClick(View v)
②View.OnFocusChangeListener——焦点事件,当组件得到或失去焦点时产生事件,处理方法onFocusChange(View v, Boolean hasFocus)
③VIew.OnKeyListener——按键事件,按下或释放按键时产生事件,处理方法onTouch(View v, int keyCode, KeyEvent event)
④View.OnTouchListener——触碰事件,触碰屏幕时才产生该事件,处理方法onTouch(View v, MotionEvent event)
⑤View.OnCreateContextMenuListener——创建上下文菜单时产生事件,处理方法onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo info)
2.基于回调的事件处理,重写组件/Activity的回调方法
(1)回调事件的处理方法都有一个boolean类型返回值
①返回true,该事件已经完全处理,不会传播出去
②返回false,该事件未完全处理,会传播出去
(2)基于回调事件方法
① onKeyDown:该方法是接口KeyEvent.Callback中的抽象方法,所有的View全部实现了该接口并重写了该方法。
功能:用来捕捉手机键盘被按下的事件。
声明:public boolean onKeyDown (int keyCode, KeyEvent event)
②onKeyUp:该方法是接口KeyEvent.Callback中的一个抽象方法,所有的View全部实现了该接口并重写了该方法。
功能:用来捕捉手机键盘按键抬起的事件。
声明:public boolean onKeyUp (int keyCode, KeyEvent event)
③onTouchEvent:在View类中的定义,并且所有的View子类全部重写了该方法。
功能:应用程序可以通过该方法处理手机屏幕的触摸事件。
声明:public boolean onTouchEvent (MotionEvent event)
④onTrackBallEvent:手机中轨迹球的处理方法onTrackBallEvent。所有的View全部实现了该方法。
声明:public boolean onTrackballEvent (MotionEvent event)
⑤onFocusChanged:只能在View中重写。
功能:焦点改变的回调方法。当某个控件重写了该方法后当焦点发生变化时,会自动调用该方法来处理焦点改变的事件。
声明:protected void onFocusChanged (boolean gainFocus, int direction, Rect previously FocusedRect)
二、事件处理步骤
1.创建时间监听器
2.给药响应事件的组件注册时间监听器
3.在事件处理方法中编写实现代码