第四章 Android 事件处理 一 学情分析前面我们学习了 Android 提供的一些强大的界面组件, 这些组件主要是用来进行数据显示, 如何用户想进行交互, 实现具体的功能, 则还需要相应事件处理进行辅助 当用户在程序上执行各种操作是, 如单机一个按钮, 应用程序必须为用户提供相应动作, 这种响

Similar documents
01_Service

Android线程和进程

第二章 Android 界面编程基础 一 学情分析 本章课程主要讲述界面控件和布局管理器, 学生可以结合前面学习课程 HTML 前端界面设计和 Java 程序设计中图形界面设计 swing 组件学习 本章学习难点因为未接触 XML 页面开发, 在界面设计中需要重新认识, 尤其组件名及组件属性需要 着

第三章 Android 高级界面组件 一 学情分析 第二章讲解了 Android 界面开发基础控件, 学生对自身开发界面不够美观, 缺少常用控件比如图片 列表 对话框等, 本章相对于上一章难度增加, 需要情境引入引导学生学习 二 教学内容分析 Android 程序开发最重要的一个环节就是界面处理,

教学〔2016〕120号

res/layout 目录下的 main.xml 源码 : <?xml version="1.0" encoding="utf 8"?> <TabHost android:layout_height="fill_parent" xml

5 2. 过程与方法 情感 态度与价值观 三 知识结构图 四 教学内容和教学要求 课 程 教学要求 课时安排

无类继承.key

「西醫基層總額支付委員會《第28次委員會議紀錄

電機工程系認可證照清單 /7/1

第一章.FIT)

大 綱 最 有 利 標 目 的 及 類 型 最 有 利 標 之 辦 理 方 式 準 用 最 有 利 標 取 最 有 利 標 精 神 最 有 利 標 之 類 型 及 其 相 關 規 定 適 用 最 有 利 標 準 用 最 有 利 標 及 取 最 有 利 標 精 神 作 業 程 序 及 實 務 分 析

软件工程文档编制

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

LEFT, RIGHT // 左 // 右 (2) 当图片移动后, 按钮的坐标发生改变, 此操作通过 setloca tion() 方法实现 setlocation() 方法是从 Component 类继承的, 其定义如下 : public void setlocation(int x, int y

安全救护教学设计 一 教学导入 教学过程设计 二 学情了解 三 学习新课 1. 指压止血法

1 下列类头定义中, 正确的是 面向对象程序设计网络课程 A class x { } B public x extends y { } C public class x extends y {.} D class x extends y implements y1 { } 2 现有两个类 A B,

手册 doc

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页

手说TTS开发指南

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

RxJava

<C8EBC3C5C6AAA3A8B5DA31D5C2A3A92E696E6464>

“百企入校——广西青年企业家协会高校

Microsoft Word - 第4章 MapReduce分布式计算框架 -教学设计.doc

技 术 文 件

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

南京市人才服务中心

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课

可 Web 编程的NativeUI 设计与实现

// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c# using System; using HalconDotNet; public partial class HDevelopExport public HTuple

F515_CS_Book.book

马 克 思 主 义 学 院 经 济 与 工 商 管 理 学 院 公 共 管 理 学 院 法 学 院 社 会 学 院 外 国 语 学 院 中 国 现 当 代 史 世 界 中 古 史 世 界 近 现 代 史 文 化 遗 产 马 克 思 主 义 哲 学 国 际 政 治 科 学 社 会 主 义 马 克 思

<!-- import outer proper

( ) %

Guava学习之Resources

教案模板4-2

PowerPoint 演示文稿

第二章.FIT)

FPGAs in Next Generation Wireless Networks WPChinese

學 過 程 技 能 中 是 重 要 的 一 環, 雖 然 控 制 變 因 的 課 程 要 進 入 小 學 階 段 才 會 接 觸, 但 我 們 嘗 試 讓 孩 子 在 科 學 遊 戲 中, 察 覺 到 不 同 的 條 件 會 影 響 比 賽 結 果, 進 而 讓 孩 子 把 這 些 條 件 一 一

Microsoft Word - 新1-12.doc

欢迎访问动力节点官方网站,动力节点java0基础免费学习半个月,java就业班免费学习一个月,满意后再交学费,请稊等,正在为您接入咨询老师

ChinaBI企业会员服务- BI企业

OOP with Java 通知 Project 3: 4 月 19 日晚 9 点

Microsoft Word - CX1000-HMI_程序开发_PLC通讯

Java事件处理模型

Microsoft Word - word模板-教师.doc

说 : 荀 子 极 偏 驳, 只 一 句 性 恶, 大 本 已 失 5 朱 熹 说 : 荀 扬 不 惟 说 性 不 是, 从 头 到 底 皆 不 识 6 采 取 的 都 是 这 种 理 论 框 架 另 一 种 理 论 框 架 始 于 20 世 纪 前 期, 这 便 是 诸 子 学 研 究 的 框 架

处理 BLOB 数据 实现第一个 JDBC 程序 PreparedStatement 对象 CallableStatement 对象 ResultSet 对象 案例 -JDBC 的基本操作 PreparedStatement 批处理 CallableStatement 对象 案例 -JDBC 的基本


ArcGIS API for Android 进阶

IDEO_HCD_0716

X713_CS_Book.book

2. AOP 底层技术实现 小风 Java 实战系列教程 关键词 : 代理模式 代理模型分为两种 : 1) 接口代理 (JDK 动态代理 ) 2) 子类代理 (Cglib 子类代理 ) 需求 :CustomerService 业务类, 有 save,update 方法, 希望在 save,updat

设计模式 Design Patterns

中 文 摘 要 智 慧 型 手 機 由 於 有 強 大 的 功 能, 以 及 優 渥 的 便 利 性, 還 能 與 網 路 保 持 隨 時 的 鏈 結 與 同 步 更 新, 因 此 深 受 廣 大 消 費 者 喜 愛, 當 然, 手 機 遊 戲 也 成 為 現 代 人 不 可 或 缺 的 娛 樂 之

3. 反 映 : 4. 五 花 八 门 : 5. 慷 慨 : 6. 参 与 : 7. 慰 劳 : 8. 延 续 : 9. 珍 爱 : 10. 浪 漫 : 三. 找 出 下 列 每 组 词 中 的 近 义 词 或 同 义 词 : 节 日 节 气 节 令 时 节 习 俗 民 俗 仪 式 风 俗 文 献

14


穨japhkesch.PDF

教案模板4-2

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

拦截器(Interceptor)的学习

穨ac3-3.PDF

题目

untitled

untitled

七天基于风险测试—Chinatest.ppt

在Spring中使用Kafka:Producer篇

第8章 JavaScript对象层次与事件处理


清华大学2013年毕业生就业质量报告

付宝容器 jsapi 档 册 PDF 版本 本版本为实验版本, 为线下独 查看使, 受制于 成 PDF 程序的限制, 样式问题还没有很好的解决, 例如分 切图 代码 亮 推荐使 在线版本, 便实时查看 jsapi 运 效果 如需搜索, 使 阅读 PDF 软件 带功能即可 更多细节样式调整和 录索引探

获取 Access Token access_token 是接口的全局唯一票据, 接入方调用各接口时都需使用 access_token 开发者需要进行妥善保存 access_token 的存储至少要保留 512 个字符空间 access_token 的有效期目前为 2 个小时, 需定时刷新, 重复

Microsoft Word - Broker.doc

Android应用开发教程

Microsoft PowerPoint - 6. 用户定义类型User-defined Datatypes.ppt [兼容模式]

Microsoft Word - 第4章 3D相册.doc

智能移动平台应用开发6 Android组件通信2 消息机制

浪潮移动应用平台(IMP) V1.1 开发手册--功能扩展(Android)

untitled

安友医疗科技(武汉)有限责任公司


传智播客 HTML5 移动 Web 开发 教学设计 课程名称 : HTML5 移动 Web 开发 授课年级 : 2017 年级 授课学期 : 2017 学年第一学期 教师姓名 : 某某老师 2017 年 09 月 09 日

Photoshop CS6 艺术设计案例教程 ( 第二版 ) 1.1 Photoshop 的应用领域 Photoshop,,, Photoshop Photoshop 的用途 Photoshop CIS ( ) ( ) 案例展现 ~ 1

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点


本章学习目标 小风 Java 实战系列教程 SpringMVC 简介 SpringMVC 的入门案例 SpringMVC 流程分析 配置注解映射器和适配器 注解的使用 使用不同方式的跳转页面 1. SpringMVC 简介 Spring web mvc


PowerPoint Presentation

如何掌控你的时间 了解自己的黄金时间 寻找事情的关键步骤 将事情分类处理 化零为整 懂得强化自己 这个假期有点荒废

年第 期

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->


BPMN2.0模型符号一览表

校 企 双 赢 的 长 效 合 作 机 制 (5) 为 毕 业 生 提 供 就 业 信 息 及 就 业 指 导, 分 析 评 价 教 学 质 量 对 人 才 培 养 模 式 提 出 意 见 和 建 议 ( 二 ) 专 业 校 企 合 作 理 事 会 1. 成 员 单 位 : 行 业 协 会 合 作

Guava学习之CharSequenceReader


Transcription:

第四章 Android 事件处理 一 学情分析前面我们学习了 Android 提供的一些强大的界面组件, 这些组件主要是用来进行数据显示, 如何用户想进行交互, 实现具体的功能, 则还需要相应事件处理进行辅助 当用户在程序上执行各种操作是, 如单机一个按钮, 应用程序必须为用户提供相应动作, 这种响应动作通过事件处理来进行完成 Android 中, 用户界面属于主线程, 而子线程无法更新主线程的界面状态, 如何动态的显示用户界面? 需要通过 Handler 消息传递动态更新界面 二 教学内容分析 本章重点讲解 Android 事件处理机制和 Android 消息传递机制 Android 提供了三种事件处理方式 : 基于回调的事件处理, 基于监听的事件处理和事件直接绑定标签 Android 消息传递机制包括 :Handler 消息传递, 异步处理机制 三 教学目标 知识目标 : (1) 基于回调的事件处理 (2) 基于监听的事件处理 (3) 事件直接绑定标签 (4) Handler 消息传递 (5) 异步处理机制 能力目标 : (1) 能够熟练事件监听处理方法对控件进行监听 (2) 熟练运用多线程对界面进行控制 四 教学重点 (1) 基于监听的事件处理 4 种方法实现内部类 匿名内部类 类自身 外部类 (2) 基于回调事件处理 (3) 直接绑定标签对控件监听 (4) Handler 实现多线程对 activity 控制 五 教学难点 (1) 基于监听事件处理 4 种方式实现 (2) 基于回调事件处理 (3) Handler 消息传递基础 (4) 异步处理机制 六 教学过程 1

第一部分 Android 事件处理机制一 回顾上节课知识, 继续讲解第四章内容 (1) 对上节课留的知识进行答疑 (2) 进入本节课本节课主题, 讲解 Android 事件处理机制前面两章学习的 Android 界面控件, 只能实现静态 UI 界面, 并不能用户与程序进行交互, 要实现动态交互获取用户的意图信息, 就需要对界面控件进行监控, 实现事件处理 (3) 明确学习目标熟练掌握基于监听事件处理, 基于回调事件处理, 直接绑定标签的用法 二 重点知识讲解 (1) 老师创建情境, 基于监听事件处理 在日常生活中经常遇到委托式事件处理, 就如同生活中我们每个人的能力都有限, 当碰到一些自己处理不了的事情时, 就委托给某个机构或公司来处理 首先, 我们需要和该机构或公司建立联系, 方便及时沟通 ; 其次, 我们需要把所遇到的事情或者要求向对方描述清楚, 这样, 他们才能更好地设计解决方案 ; 然后, 该机构可能比较大, 不止处理我们的事, 因此会选派具体的员工来处理这件事 其中, 我们自己就是事件源, 遇到的具体事情就是事件, 该机构就是事件监听器, 具体解决事情的员工就是事件处理器 2. 触发事件源上事件 外部动作 3. 生成事件对象 事件 4. 触发事件监听器, 事件被作为参数传入事件处理器 事件源 1. 将事件监听器注册到事件源 事件监听器 5. 调用事件处理器做出响应 事件处理器事件处理器 (2) 基于监听的事件处理模型编程步骤 : Step1: 获取普通界面控件 ( 事件源 ), 即被监听的对象, 界面控件一般可通过 findviewbyid() 方法获取 ; Step2: 调用事件源的 setonxxxlistener() 方法将事件监听器对象与事件源关联, 注册监听器的方法是系统定义的 ; Step3: 创建事件监听器对象, 事件监听器是一种特殊的 Java 类, 通常是一个 XxxListerner 接口, 如果要创建监听器对象则必须创建一个子类让其实现该接口 (3) 实现事件监听器的四种形式内部类形式 : 在当前类的内部定义一个类实现监听器接口 ; 外部类形式 : 在当前包下, 单独定义一个类实现监听器接口 ; 类自身作为事件监听器类 : 让 Activity 本身实现监听器接口, 并实现事件处理方法 ; 2

匿名内部类形式 : 直接在调用 setonxxxlistener() 方法时, 传递一个没有名称但实现了监听器接口的类的对象 (4) 项目完成演示 老师演示使用内部类 外部类 类自身 匿名内部类实现文本编辑器 整体采用表格布局 单独占一行表格行表格行表格行 匿名内部类 外部类形式 内部类形式 类自身作为事件监听器 (5) 基于回调的事件处理老师情境引导, 基于监听事件处理类似委托式找律师打官司, 基于回到事件处理则是自身是律师, 自身可以处理这些事件 如果说事件监听机制是一种委托式的事件处理, 那么回调机制则与之相反, 对于基于回调的事件处理模型来说, 事件源和事件监听器是统一的, 或者说事件监听器完全消失了, 当用户在 GUI 控件上触发某个事件时, 控件自己特定的方法将会负责处理该事件 其中基于回调事件处理常见方法如下 : boolean onkeydown (int keycode, KeyEvent event): 用于捕捉键盘被按下的事件 boolean onkeyup (int keycode, KeyEvent event): 用于捕捉手机键盘按键抬起的事件 ; boolean ontouchevent (MotionEvent event): 该方法用于处理手机屏幕的触摸事件, 包括屏幕被按下 屏幕抬起 在屏幕中拖动等 一般实现步骤 : 1) 定义控件的类名, 并让该类继承 View 类或一个现有的 View 的子类 2) 重写父类的一些方法, 通常需要提供一个构造器, 当 Java 代码创建该控件或根据 XML 布局文件加载并构建界面时都将调用该构造器, 根据业务需要重写父类的部分方法 3) 使用自定义的控件, 既可以通过 Java 代码来创建, 也可以通过 XML 布局文件进行创建 (6) 事件处理的传播如果处理事件的回调方法返回 true, 表明该处理方法已完全处理该事件, 该事件不会传播出去 ; 如果处理事件的回调方法返回 false, 表明该处理方法并未完全处理该事件, 该事件将会继续向外传播 自定义一个按钮, 提供构造方法并重写其触摸的回调方法, 测试基于回调传播顺序 3

(7) 直接绑定到标签 Android 提供了一种直接在界面布局文件中为指定标签绑定事件处理方法的机制 对于很多 Android 界面控件而言, 它们都支持 onclick 属性, 属性值是一个形如 xxx(view source) 方法的方法名 (8) 上机训练 学生训练基于监听事件处理 基于回调事件处理 绑定到标签 3 个案例 (5) 学生掌握检查 Android 中事件处理方式主要有哪三种? 2. 基于监听的事件处理模型中, 主要包含哪些对象, 它们之间又是如何协同工作的? 3. 实现事件监听器的方式有 和 4. 当一个控件, 既重写了该控件的事件回调方法 同时重写了该控件所在 Activity 的回调方法 还为其添加了相应的事件监听器, 当事件触发时, 事件处理的顺序是怎样的? 5.Android 的事件处理机制中, 基于监听的事件处理机制实现的基本思想来应用了设计模式中的哪种设计模式 ( ) A) 观察者模式 B) 代理模式 C) 策略模式 D) 装饰者模式 (6) 作业布置设计一个简单的小游戏, 程序运行效果如下所示 界面中有一个文本框和两个按钮 按钮一个是绿色的, 一个是蓝色的, 文本提示用户单击绿色按钮 30 次 单击绿色按钮后, 次数将减 1, 单击蓝色按钮, 则弹出对话框游戏结束 游戏过程中, 两个按钮的颜色会随机发生变化, 当顺利单击绿色按钮 30 次时, 弹出顺利过关的对话框 4

第二部分 Android 消息传递机制一 回顾上节课内容 继续讲解 Android 消息传递机制 (1) 对上节课留的知识进行答疑 (2) 进入本节课本节课主题, 讲解列表控件在日常软件中经常用到多线程 比如音乐播放器, 我在听歌的时候, 还可以显示台词 显示演唱人图片等, 这都是需要子线程进行实现 Android 界面控件所在的线程为主线程, 并且界面控件是非线程安全的, 为了保证数据的一致性, Android 中明确规定, 子线程无法更改主线程中的界面控件 为了使主线程与子线程之间能够顺利通信,Android 中提供了消息传递机制 所谓的消息传递即在子线程中执行一些耗时的操作或计时, 当需要改变主线程中的界面控件时, 则发送一条消息, 主线程收到消息后, 自己更改界面显示 即子线程发送消息, 主线程处理消息, 而发送和处理消息都是通过 Handler 对象来完成的 (3) 明确学习目标熟练掌握 Handler 常用方法和程序开发步骤 二 进入重点知识点讲解老师演示实现 (1) 案例引入老师操作 for 循环, 多线程等方式实现产生随机数案例, 不能实现 分析原因? 子线不能更改主线程, 引入 Handler, 帮助解决这个问题 (2)Handler 类主要有两个作用在新启动的线程中发送消息 ; 在主线程中获取 处理消息 (3) Handler 类的常用方法 : handlemessage (Message msg) sendemptymessage (int what) sendmessage (Message msg) hasmessages (int what) post (Runnable r) (4)Handler 消息传递程序开发步骤 1 创建 Handler 类对象, 并重写 handlemessage() 方法 ; 2 在新启动的线程中, 调用 Handler 对象的发送消息方法 ; 3 利用 Handler 对象的 handlemessage() 方法接收消息, 然后根据消息的不同执行不同的操作 (4) 案例讲解 老师操作 for 循环, 多线程等方式实现产生随机数案例, 不能实现 演示使用 Handler 实现多线程实现随机数案例 (5) 异步任务处理 5

Android 的类 AsyncTask 对线程间通讯进行了包装, 提供了简易的编程方式来使后台线程和 UI 线程进行通讯 : 后台线程执行异步任务, 并把操作结果通知 UI 线程 (6)AsyncTask 类中主要方法 onpreexecute() doinbackground(params...) onprogressupdate(progress...) onpostexecute(result) oncancelled() (7)AsyncTask 类需遵守的准则 1 Task 的实例必须在 UI 线程中创建 ; 2 execute(params...) 方法必须在 UI 线程中调用 ; 3 不要手动的调用 onpreexecute(), onpostexecute(result), doinbackground(params...),onprogressupdate(progress...) 这几个方法, 需要在 UI 线程中实例化这个 task 来调用 ; 4 该 task 只能被执行一次, 否则多次调用时将会出现异常 execute() onpreexecute() doinbackground() 循循循循 onprogressupdate( ) publishprogress( ) onpostexecute() (8) 上机训练 1 事件处理机制 ( 比较不同处理机制的用法 ) 2 消息处理机制 ( 实现动态更改文本颜色功能 ) (9) 作业制作一个图片定时轮播效果, 如下图所示, 小圆圈与图片一一对应, 当前图片所对应的小圆圈为红色, 其它图片对应的小圆圈为黄色 要求每隔 10 秒自动切换到下一张图片, 如果是最后一张图片, 下一张图片为第一张, 此外, 也可通过单击小圆圈切换到对应的图片 ( 涉及到知识点 : 计时操作 单击事件处理 ) 6

七 教学评价设计 评价内容 学生姓名 评价日期 评价项目 学生自评 生生互评 教师评价 优良中差 优 良中差优 良中差 课堂表现 回答问题 作业态度 知识掌握综合评价 寄语 7