之前我们写过基于监听的事件处理机制,实际上,安卓下还有一种就是基于事件的回调机制,与事件的监听机制不同:
1、回调机制是通过子类继承父类,然后复写方法
2、回调机制应该在xml配置文件中把包名,完全路径写进去,不然系统会报错
3、回调机制与监听机制最大的不同就是,监听机制的事件源和事件处理是分开的,类似与MVC模式,而回调机制是事件源和事件处理是一起的,因此不需要分开,自己会处理,当返回值是false的时候,会继续向外扩散,如果该类刚好同样的方法在下面,会继续执行,而返回true的时候,表示事件已经处理好了,不需要继续处理,因此也不会继续扩散,话不多说,代码直接上
//这是基于回调机制的事件处理
public class MyButton extends Button{
public MyButton (Context context,AttributeSet set){
super(context,set);
}
public boolean onKeyDown(int keyCode,KeyEvent event)
{
super.onKeyDown(keyCode,event);
Log.v.("MyButton","keydownFrom MyButton");
return false;
//事件已经处理完毕,不会继续扩散
//return true
}
}