🌈个人主页:小新_-
🎈个人座右铭:“成功者不是从不失败的人,而是从不放弃的人!”🎈
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝
🏆所属专栏: Android移动开发欢迎订阅,持续更新中~~~
✨让小新带着你快乐的学习吧~✨
1、事件监听的处理模型
在事件监听的处理模型中,主要涉及三类对象:
- Event Source(事件源):一般指各个组件。
- Event(事件):一般是指用户操作,该事件封装了界面组件上发生的各种特定事件。
- Event Listener(事件监听器):负责监听事件源所发生的事件,并对该事件做出响应。
实际上,事件响应的动作就是一组程序语句,通常以方法的形式组织起来。Android利用的是Java语言开发,其面向对象的本质没有改变,所以方法必须依附于类中才可以使用。而事件监听器的核心就是它所包含的方法,这些方法也被称为事件处理器(Event Handler)。
事件监听的处理模型可以这样描述:当用户在程序界面操作时,会激发一个相应的事件,该事件就会触犯事件源上注册事件监听器,事件监听器再调用对应的事件处理器做出相应的反应。Android的事件处理机制采用了一种委派式的事件处理方式:普通组件(事件源)将整个事件处理委派给特定的对象(事件监听器),当该组件发生指定的事件时,就通知所委托的事件监听器,由该事件监听器处理该事件。该流程如图所示。
这种委派式的处理方式很类似于人类社会的分工合作。举一个简单例子,当人们想邮寄一份快递(事件源)时,通常是将该快递交给快递点(事件监听器)来处理,再由快递点通知物流公司(事件处理器)运送快递,而快递点也会监听多个物流公司的快递,进而通知不同的物流公司。这种处理方式将事件源与事件监听器分离,从而提供更好的程序模型,有利于提高程序的可维护性。
基于上面程序可以总结出基于监听的事件处理模型的编程步骤:
(1)获取要被监听的组件(事件源)。
(2)实现事件监听器类,该类是一个特殊的Java类,必须实现一个XxxListener接口。
(3)调用事件源的setXxxListener方法将事件监听器对象注册给事件源。
当用户操作应用界面,触发事件源上指定的事件时,Android会触发事件监听器,然后由该事件监听器调用指定的方法(事件处理器)来处理事件。 实际上,对于上述三个步骤,最关键的步骤是实现事件监听器类。实现事件监听器其实就是实现了特定接口的Java类实例,在程序中实现事件监听器,通常有如下几种形式。
- 内部类形式:将事件监听器类定义成当前类的内部类。
- 外部类形式:将事件监听器类定义成一个外部类。 Activity本身作为事件监听器类:让Activity本身实现监听器接口,并实现事件处理方法。
- 匿名内部类形式:使用匿名内部类创建事件监听器对象。
2、监听点击事件的三种方式
(1)外部类设置OnClick
XML
JAVA
效果
(2)内部类
XML
JAVA
效果
(3)实现接口
XML
JAVA
效果
3、Radio Button的监听事件
4、CheckBox的监听事件
最后,感谢大家的观看~~