基于回调的事件处理模型更加简单:

如果说事件监听机制是一种委托式的事件处理,那么回调机制则恰好与之相反:对于基于回调的时间处理模型来说,事件源和事件监听器是统一的,或者说事件监听器完全消失了。当用户在GUI组件上激发某个事件时,组件自己特定的方法将会负责处理该事件

因此回调监听机制只需继承该组件,并重写该组件类的事件处理方法来实现

为了事件回调机制的事件处理,Android为所有GUI组件都提供了一些事件处理回调方法,以View为例:

Boolean onKeyDown(int keyCode,KeyEvent event);当用户在该组件上按下某个按键时触发该方法

boolean onKeyShortcut(int keyCode,KeyEvent event);当一个键盘快捷键事件发生时触发该方法

Boolean  onKeyLongPress(int keyCode,KeyEvent event),当用户在该组件上长按某个按键时触发该方法

boolean onTouchEvent(int keyCode,KeyEvent event);当用户在该组件上触发触摸屏事件时触发该方法

...等等

MainActivity.java

public class MainActivity extends Activity
{@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);}
}

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent">
<!-- 使用自定义View时应使用全限定类名 -->
<org.crazyit.event.MyButton  android:layout_width="match_parent" android:layout_height="wrap_content" android:text="单击我"/>
</LinearLayout>

MyButton.java

public class MyButton extends Button
{public MyButton(Context context, AttributeSet set){super(context, set);}@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event){super.onKeyDown(keyCode, event);Log.v("-crazyit.org-", "the onKeyDown in MyButton");// 返回true,表明该事件不会向外扩散return true;}
}

Android基于回调的事件处理相关推荐

  1. Android移动开发之【通往安卓的神奇之旅】基于回调的事件处理

    文章目录 1 Android中的事件处理方法 2 基于回调的事件处理机制详解 1 Android中的事件处理方法 事件处理:响应用户UI动作,提高应用程序交互性 1.基于监听的事件处理机制 2.基于回 ...

  2. Android——基于监听器的事件处理(转)

    事件,我们并不陌生! 所有的基于UI的应用程序,事件都变得不可或缺!试想一下,如果我们做的程序单击按钮和其它控件都没有反应,那么就如同一个人在这个世界上听不到声音一样! Android为我们提供了两种 ...

  3. Android基于监听的事件处理机制

    Android提供了强大的事件处理机制,主要包括两大类: 1,基于监听的事件处理机制:主要做法是为Android界面组件绑定特定的事件监听器 2,基于回调的事件处理机制:主要做法是重写Android组 ...

  4. 基于回调的观察者模式

    文章目录 回调机制的简单的理解: 比较经典的回调方式: 示例 基于监听的事件处理 回调的简单理解 同步回调 异步回调函数 Java回调机制进阶 回调进阶(基于回调的"观察者"模式的 ...

  5. android事件处理主要方法,详解Android的两种事件处理机制

    UI编程通常都会伴随事件处理,Android也不例外,它提供了两种方式的事件处理:基于回调的事件处理和基于监听器的事件处理. 对于基于监听器的事件处理而言,主要就是为Android界面组件绑定特定的事 ...

  6. Android基于环信SDK开发IM即时聊天(一)

    2016-09-02更新:可以看一下最新的这篇文章和源码,Android基于环信SDK开发IM即时聊天(二) 目前市面上我了解的做第三方即时聊天SDK的有两家:环信.融云,这里我使用环信SDK来完成即 ...

  7. 「Android基于MQTT实现消息通知」

    「Android基于MQTT实现消息通知」 一.写在前面 在对接项目中IoT时,发现目前有对MQTT做了接入,这里记录一下,官方的资料比较详细,这里主要从实现细节出发:对具体的需求以及配套的技术方案进 ...

  8. Android 基于libaums实现读写U盘文件

    前言 还是我实习的时候,遇到个要求说要支持 USB,当时找了很多博客,最后这篇文章帮我解决了问题,想想自己也没有其他要补充的,就转载一下吧! 这篇博客用的第三方库只支持 FAT32 格式的 U盘,如果 ...

  9. Android 基于Zxing的扫码功能实现(二)

    本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 引言 本篇博文是基于 Android 二维码的扫码功能实现(一) 文章写的,建议阅读这篇文章之前,先看看上篇文章.还有建议阅读本文的 ...

最新文章

  1. EXTJS 常用控件的使用
  2. binaryoperator java_BinaryOperatorT接口的用法示例
  3. 数据库 oracle 设计三范式
  4. 印度首富之女大婚,贫穷限制了我的想象……
  5. Android使用HttpURLConnection下载图片
  6. 数据结构与算法---导论
  7. 二分法其实很简单,为什么老是写不对!!!
  8. IOS开发之数据库FMDB的使用
  9. 小甲鱼 python11讲作业
  10. 何为自动化测试?(纯干货)
  11. layui表格时间类型显示问题
  12. 实战录 | Spring中bean的生命周期
  13. C++面试之Linux操作系统
  14. HTTP/3 ,它来了。
  15. 元宇宙之XR(02)VR概念解读 分类说明
  16. 基本概念学习(7003)---网络流量
  17. 万柳少爷背后,大批有钱人正在自媒体上发着横财。
  18. 微信公众号开发系列-12、微信前端开发利器:WeUI
  19. html在不可编辑页面字段下沉,[Web前端技术教学]《基于Web标准的网页设计与制作》试题及答案...
  20. 最适合发朋友圈的句子

热门文章

  1. test_bit、set_bit和clear_bit
  2. 深度学习的数学 (6)误差反向传播法必需的链式法则
  3. Hyperledger Besu(3)“多用户架构”和“插件”
  4. 近世代数--多项式环--未定元的存在性
  5. 【Python小程序】这竟是2月14号情人节表白神器、成功率100%?(进来康康)
  6. Shell之while循环
  7. optee3.14.0 qemu_v8的环境搭建篇(ubuntu20.10)--终极篇
  8. 两种重要的图——Snapshot diagram UML diagram
  9. 想要求职Web安全相关的岗位,你就必须要懂的知识
  10. 4.WaitForSingleObject函数分析