之前我們寫過基於監聽的事件處理機制,實際上,安卓下還有一種就是基於事件的回調機制,與事件的監聽機制不同:
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
}
}