- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[计算机软件及应用]5、Android Event详解
Android Event详解
时间:2012/12/19
作者:汪文君
主要内容大纲
基于回调的事件处理
基于监听的事件处理
Android事件概述
响应系统设置的事件处理
Handler消息传递
Android事件机制概述
之前学习了很多关于Android的组件技术,但是所有的组件必须有与之对应的动作,因此在本ppt中将重点讲解一下android的事件机制
Android的事件机制大致可以分为如下几类
基于监听的事件机制
基于回调的事件机制
其中基于监听的事件机制是使用最多的,也是最为推荐的一种方式,因为他更加的面向对象,更加的实现了事件源和响应的分离,而后者也就是基于回调的事件机制可以将事件源和响应看作是一体的
基于事件机制的事件处理(I)
基于事件的处理模型主要存在如下三类角色
事件源:事件发生的场合,在android其实就是组件
事件:简言之就是到底发生了什么样的事情;
事件监听器:就是指发生事件后如何进行处理,进行如何的动作;
事件处理机制可以看作是一种委派的方式,也就是说事件源自身不关注发生某种事件之后该进行如何处理,处理事件的具体方案则委派给了事件监听器;
每个组件针对特定的事件委派给相应的监听器;
每个监听器可以被很多组件进行委派;
基于事件机制的事件处理(II)
事件委派机制的大致原理图如下所示:
基于事件机制的事件处理(III)
事件监听机制实战
其实在最前面的章节中已经或多或少的接触过事件监听机制的处理方式,在本节中简单的做一下温习,并且进行分析
组件配置文件
基于事件机制的事件处理(IV)
Java代码
基于事件机制的事件处理(V)
程序发布后的效果
程序的事件处理非常之简单,只不过是将TextView和Button的Text进行了互换,通过这个简单的例子我们可以得出如下几种角色的扮演
事件源:button
事件:点击
事件监听器:MyListener
如何注册:setOnClickListener
事件和事件监听器(I)
实战(II)
我们设计一个键盘控制飞机移动的小游戏,来加深一下对事件以及事件源的理解
自定义PlaneView.java
事件和事件监听器(II)
Java代码
事件和事件监听器(III)
发布后的效果
事件和事件监听器(IV)
通过上面的两个例子我们不难看出,让组件注册监听事件,其实就是将实现了某些特定接口的类通过set的方式注入到组件中,这就是典型的观察者模式的使用,总体来讲我们的事件注册有如下几种形式:
内部类的形式
外部类的形式
匿名类的形式
Activity本身作为事件监听器类
在接下来的讲解中一一进行介绍
内部类实现事件监听(I)
如下代码所示就是采用内部类的形式
匿名内部类实现事件监听(I)
如下代码所示就是采用匿名内部类的形式
外部类实现事件监听(I)
如下代码所示就是采用外部类的形式
直接绑定到标签方式(I)
这种方式使用也不是很多见,再说也不能将每个组件的各种事件都涵盖,并且不够灵活,但是有些时候使用它也不失为一种策略
组件配置文件:
直接绑定到标签方式(II)
Java代码
直接绑定到标签方式(III)
发布后的效果如下所示
使用Activity作为事件监听
Java代码
基于回调的事件处理(I)
真如前面所说的,在android中回调的方式其实就是事件源和事件处理是一个整体,也就是说没有了事件监听器的存在,这种方式我本人非常的不喜欢,因为组件本身所承担的事情着实有些太多,耦合度比较高,因此大多数情况下还是使用事件监听的方式来进行事件处理
实战回调事件处理
基于回调的事件处理(II)
Java代码(实现Button的回调方法)
基于回调的事件处理(III)
布局文件
发布之后,在键盘上敲击任何按钮都会出现一个和上一个实例一模一样的对话框
基于回调的事件传播
继续上面的例子,只不过做一些小小的改动,在上面的例子中我们重写了Button的方法onKeyDown最后返回了true
当返回true的时候表明该事件无需再次进行传播,也就是说再加入了其他监听器方法不会起到任何作用
如果返回false的时候则表明该事件还需要再次被进行捕获,交给事件监听处理时间来进行处理。
响应系统的时间监听(I)
在Android系统中,有时候我们要获取到系统设置所触发的一些事件,比如网络关闭,手机无信号,旋转,电池容量,因此掌握系统变化的事件是非常关键的
Android中提供了一个Configuration主要用来侦测系统的一些事件
主要用法非常简单
Configuration cfg = getResource().getConfiguration()
常用的获取系统消息的方法
响应系统的时间监听(II)
响应系统的时间监听(III)
实战:获取系统设备状态(Java代码)
响应系统
您可能关注的文档
最近下载
- 2024年智慧树《中华国学》考试题库(含答案).pdf VIP
- 2023年江苏省泰州市中考地理试卷真题(附答案)+2022年地理试卷及答案.docx
- 二年级下册 看图写话 助人为乐.ppt
- GB-50618-2011房屋建筑和市政基础设施工程质量检测技术管理规范.pdf VIP
- 李澄-急性原发性肠脂垂炎CT诊断只是课件.ppt
- 考低压电工证模拟试题(练习题附答案).doc VIP
- 2025高中英语外刊时文阅读 《黑神话:悟空》英文介绍课件.pptx
- DB34T 1589-2012 建筑节能门窗应用技术规程.pdf VIP
- 第四课 共同开发建设祖国 《中华民族大团结》七年级全一册(初中).pptx VIP
- 新审计法党课培训.ppt VIP
文档评论(0)