Android基于回调的事件处理

摘要:不管是桌面应用还是手机应用,面对最多的就是用户,经常需要处理的就是用户动作–也就是需要为用户动作提供响应。这种为用户动作提供响应的机制就是事件处理。
Android提供了强大的事件处理机制,包括两套事件处理机制:
**–>基于监听的事件处理
–>基于回调的事件处理**
基于监听的事件处理平时用的比较多,比较熟悉了,这里记录一下我不熟悉的基于回调的事件处理。
对于基于回调的事件处理模型来说,事件源和事件监听器是统一的,或者说事件监听器完全消失了。当用户在GUI组件上激发某个事件时,组件自己特定的方法将会负责处理该事件。
基于回调的事件处理机制可通过自定义View类来实现,自定义View时重写该View的事件处理方法即可。下面是一个自定义按钮的实现类。

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("----" , "基于回调的实例");
        return true;
    }
}

在我们自定义的Button中,重写了onKayDown方法,该方法会负责处理按钮上的键盘事件。
在xml文件中使用MyButton组件时:

<com.caiyun.MyButton
    android:layout_height="wrap_content"
    ....
    />

com.caiyun.MyButton是MyButton类完整的类名。使用自定义的类时,都要用完整的类名哦!
这样定义之后,无需在java程序中为按钮绑定监听器–因为按钮自己重写了onKeyDown(int keyCode , keyEvent event)方法,这以为着按钮将会自己处理相应的事件。
小结:对于监听的事件处理模型来说,事件源和事件监听器是分离的,当事件源上发生特定的事件之后,该事件交给事件监听器负责处理;对于基于回调的事件处理来说,事件源和事件监听器是统一的,当事件源发生特定的事件后,该事件还是由事件本身负责处理。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值