摘要:不管是桌面应用还是手机应用,面对最多的就是用户,经常需要处理的就是用户动作–也就是需要为用户动作提供响应。这种为用户动作提供响应的机制就是事件处理。
Android提供了强大的事件处理机制,包括两套事件处理机制:
**–>基于监听的事件处理
–>基于回调的事件处理**
基于监听的事件处理平时用的比较多,比较熟悉了,这里记录一下我不熟悉的基于回调的事件处理。
对于基于回调的事件处理模型来说,事件源和事件监听器是统一的,或者说事件监听器完全消失了。当用户在GUI组件上激发某个事件时,组件自己特定的方法将会负责处理该事件。
基于回调的事件处理机制可通过自定义View类来实现,自定义View时重写该View的事件处理方法即可。下面是一个自定义按钮的实现类。

public class MyButton extends Button {    public MyButton(Context context , AttributeSet set)    {        super(context , set);    }    @Override    public boolean onKeyDown(int keyCode , KeyEvent event)    {        super.onKeyDown(keyCode , event);        Log.v("----" , "基于回调的实例");        return true;    }}

在我们自定义的Button中,重写了onKayDown方法,该方法会负责处理按钮上的键盘事件。
在xml文件中使用MyButton组件时:

<com.caiyun.MyButton    android:layout_height="wrap_content"    ....    />

com.caiyun.MyButton是MyButton类完整的类名。使用自定义的类时,都要用完整的类名哦!
这样定义之后,无需在java程序中为按钮绑定监听器–因为按钮自己重写了onKeyDown(int keyCode , keyEvent event)方法,这以为着按钮将会自己处理相应的事件。
小结:对于监听的事件处理模型来说,事件源和事件监听器是分离的,当事件源上发生特定的事件之后,该事件交给事件监听器负责处理;对于基于回调的事件处理来说,事件源和事件监听器是统一的,当事件源发生特定的事件后,该事件还是由事件本身负责处理。

更多相关文章

  1. 责任链模式在Android中的应用
  2. 再论Handler—Handler事件分发、Handler线程切换原理解析
  3. Android(安卓)事件处理详解(二) —— 基于回调的事件处理
  4. Android中的事件处理研究
  5. 自定义View之滑动事件
  6. ReactNative调用android原生View
  7. Android延时启动效果+轮播图+点击进入+沉浸式状态栏+按钮点击颜
  8. Android(安卓)开发 voip/sip 程序
  9. Android(安卓)View从源码的角度分析事件的注册和接收

随机推荐

  1. 高通方案的Android设备几种开机模式的进
  2. Android应用程序的快速启动
  3. Android(安卓)创建与解析XML(一)—— 概述
  4. Android开发中AsyncTask实现异步处理任务
  5. android热修复Java层原理和实现
  6. Android开发者e周报 第6期
  7. Android主题与样式
  8. 一款APP设计的从0到1之:Android设计规范篇
  9. Android,开源还是封闭?
  10. 10款最佳Android快速应用程序切换