zoukankan
html css js c++ java
Android的按钮单击事件及监听器的实现方式
第一种:匿名内部类作为事件监听器类
<ignore_js_op>
大部分时候,事件处理器都没有什么利用价值(可利用代码通常都被抽象成了业务逻辑方法),因此大部分事件监听器只是临时使用一次,所以使用匿名内部类形式的事件监听器更合适,实际上,这种形式是目前是最广泛的事件监听器形式。上面的程序代码就是匿名内部类来创建事件监听器的!!!
对于使用匿名内部类作为监听器的形式来说,唯一的缺点就是匿名内部类的语法有点不易掌握,如果读者java基础扎实,匿名内部类的语法掌握较好,通常建议使用匿名内部类作为监听器。
第二种:内部类作为监听器
<ignore_js_op>
将事件监听器类定义成当前类的内部类。1、使用内部类可以在当前类中复用监听器类,因为监听器类是外部类的内部类,2、所以可以自由访问外部类的所有界面组件。这也是内部类的两个优势。上面代码就是内部类的形式!!
第三种:Activity本身作为事件监听器
<ignore_js_op>
这种形式使用activity本身作为监听器类,可以直接在activity类中定义事件处理器方法,这种形式非常简洁。但这种做法有两个缺点:(1)这种形式可能造成程序结构混乱。Activity的主要职责应该是完成界面初始化;但此时还需包含事件处理器方法,从而引起混乱。(2)如果activity界面类需要实现监听器接口,让人感觉比较怪异。
上面的程序让Activity类实现了OnClickListener事件监听接口,从而可以在该Activity类中直接定义事件处理器方法:onClick(view v),当为某个组件添加该事件监听器对象时,直接使用this作为事件监听器对象即可。
第四种:外部类作为监听器
ButtonTest类
<ignore_js_op>
当用户单击button按钮时,程序将会触发MyButtonListener监听器
外部MyButtonListener类
<ignore_js_op>
使用顶级类定义事件监听器类的形式比较少见,主要因为如下两个原因:
1、事件监听器通常属于特定的gui界面,定义成外部类不篮球提高程序的内聚性。
2、外部类形式的事件监听器不能自由访问创建gui界面的类中的组件,编程不够简洁。
但如果某个事件监听器确实需要被多个gui界面所共享,而且主要是完成某种业务逻辑的实现,则可以考虑使用外部类的形式来定义事件监听器类。
第五种:直接绑定到标签
Android还有一种更简单的绑定事件监听器的的方式,直接在界面布局文件中为指定标签绑定事件处理方法。
对于很多Android标签而言,它们都支持如onClick、onLongClick等属性,这种属性的属性值就是一个形如xxx
(View source)
的方法的方法名。在布局文件中为button添加属性,如一代码:
<ignore_js_op>
为Button按钮绑定一个事件处理方法:clickHanlder,这意味着开发者需要在该界面布局对应的Activity中定义一个void clickHanler(View source)方法,该方法将会负责处理该按钮上的单击事件。
下面是该界面布局对应的java代码:
<ignore_js_op>
7.gif
(9.72 KB, 下载次数: 47)
下载附件
保存到相册
2011-12-11 18:22 上传
Android的按钮单击事件及监听器的实现方式
查看全文
相关阅读:
linux常用的一些命令
C语言之初认识
前端VUE基于gitlab的CI_CD
【Github】在repo中添加其它repo: adding embedded git repository
【Algorithm】Sorting Algorithm
【gitbook】gitbook init报错解决
8 款浏览器兼容性测试工具介绍,需要的赶紧收藏吧!
软件测试适合女生吗?大厂内部测试人员这样说!
6 大测试用例设计题详细整理— 助攻高薪求职之路!
APP 兼容性测试之云测平台体验
原文地址:https://www.cnblogs.com/x38160/p/3292922.html
最新文章
【题解】CF891B Gluttory
【题解】Good Subsegments
VSCode C++ 配置相关
图片修复工具
免费阅读小说大全下载工具使用教程
数学符号、公式的英语读法
科创板历史行情数据 API 接口
获取任意站点标题与图标 API 接口
简体繁体互转 API 接口
关键字摘要智能提取 API 接口
热门文章
中文文本分词 API 接口
中英文排版规范化 API 接口
唐诗宋词大全 API 接口
百万中国对联数据 API 接口
美股历史行情数据 API 接口
港股历史行情数据 API 接口
深入xLua实现原理之C#如何调用Lua
深入xLua实现原理之Lua如何调用C#
正则表达式校验传真号码
树莓派安装apache php 无法使用mysqli函数
Copyright © 2011-2022 走看看