View组件将事件分为六种:
(1)OnClickListener接口:
回调方法为 public void onClick(View v):v为单击发生事件的组件
(2)OnLongClickListener接口:长按事件
回调方法为 public boolean onLongClick(View v):返回true表示事件已经处理完毕,返回false表示事件还未处理完毕
(3)OnFocusChangeListener接口:组件焦点改变事件
回调方法为 public void onFocusChange(View v,boolean hasFocus):hasFocus表示事件源的状态,是否获得焦点
(4)OnKeyListener接口:手机键盘事件的监听
回调方法为 public boolean onKey(View v,int keyCode,KeyEvent event):keyCode为键盘码,event为键盘事件封装的对象
(5)OnTouchListener接口:处理手机屏幕事件 Viev触摸、按下、抬起、滑动都会触发该事件
回调方法为 public boolean onTouch(View v,MotionEvent)
(6)OnCreateContextMenuListener接口:处理上下文菜单被创建的事件
回调方法为 public void onCreateContextMenu(ContextMenu menu,View v,ContextMenuInfo info):menu 为上下文的菜单,info为该对象封装了有关上下文菜单其他信息 。创建上下文菜单使用的是:registerForContextMenu(View v)本质是为View 组件v注册该接口,并实现了相应的回调方法。
当事件没有被任意的View处理时,会在Activity中调用响应的回调方法(Android SDK提供5个默认的回调方法)
(1)public boolean onKeyDown(int keyCode,KeyEvent event)方法是接口KeyEvent.Callback的抽象方法,返回true表示已经完成该事件,返回false表示该事件还可以被其他的监听器处理
(2)public boolean onKeyUp(int keyCode,KeyEvent event)
(3)public boolean onTouchEvent(MotionEvent event)方法在View中定义
屏幕按下MotionEvent.getAction()值为Motion.ACTION_DOWN;
离开屏幕时值为Motion.ACTION_UP;
滑动时值为Motion.ACTION_MOVE
返回true表示事件完成,false表示未完成
(4)public boolean onTrackballEvent(MotionEvent event):处理手机中轨迹球的的相关事件,true完成,false为未完成
(5)protected void onFocusChanged(boolean gainFocus,int direction,Rect previouslyFocusRect)该方法只能在View中重写
direction表示焦点移动的方向 previouslyFocusRect表示触发事件的View的坐标事件中前一个获得交掉的矩形区域