Android学习笔记-事件处理机制
Android的事件处理机制有两种:监听和回调。
A.基于监听的事件处理
主要涉及三类对象:EventSource(事件源),Event(事件),EventListener(事件监听器)
监听机制处理事件的流程图如下(委派式:Delegation):
简单的代码实现:
1.main.xml中定义了一个Button如下,它将作为事件源组件:
<Button android:id="@+id/botton1".../>
2.为该按钮绑定一个事件监听器,监听器的实现方法有几种形式:
2.1 内部类形式
2.2 外部类形式
2.3 Activity本身作为事件监听器类
2.4 匿名内部类
注意:无论采取哪种实现方式都要实现的事件监听器接口有:
View.OnclickedListener:单击事件的事件监听器必须实现的接口
View.OnCreateContextMenuListener:创建上下文菜单事件……
View.OnFocusChangeListener:焦点改变事件……
View.OnKeyListener:按键事件……
如,采用2.4方式绑定该button1的单击事件的监听器的代码如下在(*Activity.java文件中):
final Button bn= (Button)this.findViewById(R.id.button1);
bn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
……//处理事件的代码
}
});
此外,还有一种直接绑定到标签的更为简单的绑定事件监听器的方法
在main.xml文件中的button1定义标签里添加如下代码
<Button android:id="@+id/botton1"
android:onClick="clickHandler".../>
在对应该界面的Activity中定义clickHandler(View v)方法,该方法就会负责处理该按钮上的单击事件
B.基于回调的事件处理
回调机制实质就是将事件的处理绑定在组件上,由GUI组件自己处理事件,回调机制需要自定义View来实现,自定义View重写该View的事件处理方法即可。
如MyButton.java继承了Button组件,要实现对按键的事件处理,则重写父类的boolean onKeyDown(int keyCode, KeyEvent event)方法即可,当然在main.xml中的定义也要相应的改变,如下:
<nwpu.daisy.test.myButton ……/>
未完待续
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?