您的位置:首页 > 移动开发 > Android开发

Android事件处理之二 基于回调的事件处理

2015-01-31 17:31 288 查看
Android还提供了一种基于回调的时间处理模型。代码上回调处理更简单

3.3.1 回调机制与监听机制
当用户在GUI组件上激发某个事件时,组件自己特定的方法将会负责处理该事件
为了实现回调机制类处理GUI组件发生的时间,Android为所有GUI组件都提供了一些时间处理回调方法。以View为例:
boolean onKeyDown(int keyCode, KeyEvent event)
boolean onKeyLongPress(int keyCode, KeyEvent event)
boolean onKeyShortcut(int keyCode, KeyEvent event)
boolean onKeyUp(int keyCode, KeyEvent event)
boolean onTouchEvent(MotionEvent event)
boolean onTrackballEvent(MotionEvent event):当用户在该组件上触发轨迹球屏事件时
示例代码:
public
class
MyButton
extends Button{
public
MyButton(Context context, AttributeSet set)

{
super(context, set);

}
@Override
public
boolean
onKeyDown(int
keyCode, KeyEvent event)

{
super.onKeyDown(keyCode, event);

Log.v("test for ce","the onKeyDown in MyButton");
// Toast.makeText(getApplicationContext(), "you have call the ", Toast.LENGTH_SHORT).show();
return
true;

}
}

3.3.2 基于回调的事件传播
几乎所有基于回调的时间处理方法都有一个boolean类型的返回值,标识是否能完全处理该事件
返回true,表明该方法已完全处理该事件,该事件不会传播出去
返回false,表明该处理方法并未完全处理,该事件会传播出去
某组件上所发出的事情不仅激发该组件上的回调方法,也会触发该组件所在Activity的回调方法——只要事件能传播出去

3.3.3 重写onTouchEvent方法响应触摸屏事件
基于监听的事件处理模型具有更大的优势:
基于监听的事件处理模型,分工更明确,具有更好的可维护性
Android的事件处理机制保证基于监听的事件监听器会优先被触发
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: