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

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方法响应触摸屏事件
基于监听的事件处理模型具有更大的优势:
  1. 基于监听的事件处理模型,分工更明确,具有更好的可维护性
  2. Android的事件处理机制保证基于监听的事件监听器会优先被触发
























  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值