android开发详解(六)--------------事件处理机制

1、工程目录

2、FireEvent.java

package com.example.fireeevent;

import java.util.EventObject;

//着火事件类,绑定事件源
public class FireEvent extends EventObject {
	private Object eventSource;

	public FireEvent(Object source) {
		super(source);
		// TODO Auto-generated constructor stub
		this.eventSource = source;
	}

	public Object getEventSource() {
		return eventSource;
	}

}

3、Listener.java

package com.example.fireeevent;

import java.util.EventListener;
//着火监听器,监听着火事件
public interface Listener extends EventListener {
	public void listen(FireEvent e);

}

4、FireListener.java

package com.example.fireeevent;

public class FireListener implements Listener {

	public void listen(FireEvent e) {
		// TODO Auto-generated method stub
		System.out.println("房子着火啦!!!");
	}

}

5、House.java

package com.example.fireeevent;

import java.util.ArrayList;
import java.util.List;

//事件源房子类
public class House {
	private boolean flag = false;
	private List listeners = new ArrayList();

	public boolean getFlag() {
		return flag;
	}

	public void setFlag(boolean flag) {
		this.flag = flag;
		if (flag) {
			ntf();
		}
	}

	public void addListener(Listener l) {
		listeners.add(l);
	}

	public List getListeners() {
		return listeners;
	}

	public void ntf() {
		for (int i = 0; i < listeners.size(); i++) {
			Listener l = (Listener) listeners.get(i);
			l.listen(new FireEvent(this));
		}
	}

}

6、Test.java

package com.example.fireeevent;

//测试类
public class Test {
	public static void main(String[] args) {
		House h = new House();
		h.addListener(new FireListener());
		h.addListener(new Listener() {
			public void listen(FireEvent e) {
				// TODO Auto-generated method stub
				System.out.println("冒烟啦!!!");
			}
		});
		h.setFlag(true);
	}

}

注意:建成一个java project。

事件处理机制:

(1)event object:就是事件产生时具体的“事件”,用于listener的相应方法之中,作为参数,一般存在于listener的方法之中。

(2)event source:具体接受事件的实体,比如说,你单击一个button,那么button就是event source。

(3)event listener:事件监听器,当有其对应的event object产生的时候,它就调用相应的方法进行处理。这种方式也称为方法回调(callback)

时间: 2024-07-29 01:27:36

android开发详解(六)--------------事件处理机制的相关文章

Android开发详解之ListView详解一

列表ListView介绍和实例 1.ListView  -- ListActivity -- ListAdapter 2.ArrayAdapter结合ListView进行显示 3.SimpleAdapter结合ListView进行显示 4.处理单击ListView事件,处理选择ListView的事件 5.使用SimpleCursorAdapter与ListView进行关联 ListView : 要让一个ListView显示出来需要的3个条件: 1.ListView  --- 需要被显示的列表 2

android动画详解六 XML中定义动画

动画View 属性动画系统允许动画View对象并提供很多比view动画系统更高级的功能.view动画系统通过改变绘制方式来变换View对象,view动画是被view的容器所处理的,因为View本身没有要操控的属性.结果就是View被动画了,但View对象本身并没有变化.在Android3.0中,新的属性和相应的getter和setter方法被加入以克服此缺点. 属性动画系统可以通过改变View对象的真实属性来动画Views.而且,View也会在其属性改变时自动调用invalidate()方法来刷

Android开发详解之onTouch和onClick详解

android组件中的onTouch,onClick,onLongClick事件发生先后顺序和关联: 一,onTouch返回false 首先是onTouch事件的down事件发生,此时,如果长按,触发onLongClick事件:然后是onTouch事件的up事件发生,up完毕,最后触发onClick事件. 二,onTouch返回true 首先是onTouch事件的down事件发生,然后是onTouch事件的up事件发生:期间不触发onClick和onLongClick事件 三,onTouch:d

Xamarin+Prism开发详解六:DependencyService与IPlatformInitializer的关系

祝各位2017年事业辉煌!开年第一篇博客,继续探索Xamarin.Forms… 为什么我做Xamarin开发的时候中意于Prism.Forms框架?本章为你揭晓. 实例代码地址:https://github.com/NewBLife/XamarinDemo/tree/master/TextToSpeechDemo DependencyService 1.简介 软件开发有一个原则叫[依赖倒置Dependence Inversion Principle ] A.高层次的模块不应该依赖于低层次的模块,

Android开发 详解开源项目CircleImageView

之前的项目中在需要显示圆形头像的地方,使用到了Github上的优秀开源项目CircleImageView https://github.com/hdodenhof/CircleImageView 今天仔细地研究了这个项目,学习其原理,收获不少. 源码主要分为下面这几大部分 取图片Bitmap 取自定义属性 创建Paint画笔 计算内外圆半径 Canvas绘制内外圆形 一.取图片Bitmap CircleImageView继承自ImageView 重写了下面几个方法 @Override publi

Android Fragment详解(六):Fragement示例

把条目添加到动作栏 你的fragment们可以向activity的菜单(按Manu键时出现的东西)添加项,同时也可向动作栏(界面中顶部的那个区域)添加条目,这都需通过实现方法onCreateOptionManu()来完成. 你从fragment添加到菜单的任何条目,都会出现在现有菜单项之后.Fragment之后可以通过方法onOptionsItemSelected()来响应自己的菜单项被选择的事件. 你也可以在fragemnt中注册一个view来提供快捷菜单(上下文菜单).当用户要打开快捷菜单时

Android相机开发详解(一)

Android相机开发详解(一) 请支持原创,尊重原创,转载请注明出处:http://blog.csdn.net/kangweijian(来自kangweijian的csdn博客) Android相机开发能够实现打开相机,前后摄像头切换,摄像预览,保存图片,浏览已拍照图片等相机功能. Android相机开发详解(一)主要实现打开相机,摄像预览,前后置摄像头切换,保存图片等四个功能. Android相机开发详解(二)主要实现翻页浏览相片,触控缩放浏览图片,删除图片,发送图片等四个功能. Andro

Android WebView 开发详解

Android WebView 开发详解 1.概览: Android WebView 做为承载网页的载体控件,他在网页显示的过程中会产生一些事件,并回调给我们的应用程序,以便我们在网页加载过程中做应用程序想处理的事情.比如说客户端需要显示网页加载的进度.网页加载发生错误等等事件. WebView提供两个事件回调类给应用层,分别为WebViewClient,WebChromeClient开发者可以继承这两个类,接手相应事件处理.WebViewClient 主要提供网页加载各个阶段的通知,比如网页开

Android开发经典书籍下载——《Android 4高级编程》《疯狂Android讲义》《Android应用开发详解(郭宏志)》《Android应用案例开发大全》《Android 3D游戏开发技术》

这是我收集的关于android开发方面的经典书籍,高清PDF电子版,可以在我的百度网盘免费下载,希望对需要的朋友有帮助. 目录: <Android 4高级编程>(附完整源代码) <疯狂Android讲义> <Android应用开发详解(郭宏志)> <Android应用案例开发大全> <Android 3D游戏开发技术> <Android内核剖析 柯元旦> <深入理解Android  卷1> <深入理解Android