Android事件监听及处理

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.在事件处理方法中编写实现代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值