基于监听事件处理模型的编程思想:
1.获取普通界面组件(事件源),就是获取被监听的对象
2.实现事件监听类,这个类要实现一个XxxListener接口,这个类中放置响应的事件。
3.调用事件源的XxxListener方法将事件监听器对象注册给普通组件(事件源)。
例如对应用中的bn按钮进行设置监听:
首先获取对象bn:
Button bn = (Button) findViewById(R.id.bn);
实现时间的监听器类:
class MyClickListener implements View.OnClickListener{
@Override
//这里以下就是写响应的事件
}
将监听对象注册给普通组件:
bn.setOnClickListener(new MyClickListener());
回调机制和监听机制的区别:
监听机制是委托式的,事件源和监听器是分开的,而回调机制中事件源和监听器是统一的,可以说监听器不再存在!要使用回调机制处理GUI组件上发生的事情,就要为该组件提供事件的处理方法。Java是静态语言,不能为某个对象动态地添加方法(名称)(个人理解就是不能在为组件设置新的回调方法);所以只能去继承GUI组件类,并且重写该类的事件处理方法来实现。
基于回调事件处理:
1.继承GUI组件类,然后重写该类的事件处理方法。以view为例,该类包含了如下的处理方法:
boolen onKeyDown(int keyCode,KeyEvent event);
boolen onKeyLongPress(int keyCode,KeyEvent event);
boolen onKeyShortcut(int keyCode,KeyEvent event);
boolen onKeyonKeyUp(int keyCode,KeyEvent event);
boolen onTouchEvent(MotionEvent event);
boolen onTrackballEvent(MotionEvent event);