• Android学习笔记事件处理机制 希


    Android的事件处理机制有两种:监听和回调。

    A.基于监听的事件处理

    主要涉及三类对象:EventSource(事件源),Event(事件),EventListener(事件监听器)

    监听机制处理事件的流程图如下(委派式:Delegation):

    简单的代码实现:

      1.main.xml中定义了一个Button如下,它将作为事件源组件:

      <Button android:id="@+id/botton1".../>

      2.为该按钮绑定一个事件监听器,监听器的实现方法有几种形式:

        2.1 内部类形式      

        2.2 外部类形式

        2.3 Activity本身作为事件监听器类

        2.4 匿名内部类

      注意:无论采取哪种实现方式都要实现的事件监听器接口有:

        View.OnclickedListener:单击事件的事件监听器必须实现的接口

        View.OnCreateContextMenuListener:创建上下文菜单事件……

        View.OnFocusChangeListener:焦点改变事件……

        View.OnKeyListener:按键事件……

      如,采用2.4方式绑定该button1的单击事件的监听器的代码如下在(*Activity.java文件中):   

        final Button bn= (Button)this.findViewById(R.id.button1);

        bn.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
            // TODO Auto-generated method stub

              ……//处理事件的代码
          }
        });

      此外,还有一种直接绑定到标签的更为简单的绑定事件监听器的方法

      在main.xml文件中的button1定义标签里添加如下代码

      <Button android:id="@+id/botton1"

        android:onClick="clickHandler".../>

      在对应该界面的Activity中定义clickHandler(View v)方法,该方法就会负责处理该按钮上的单击事件

    B.基于回调的事件处理

      回调机制实质就是将事件的处理绑定在组件上,由GUI组件自己处理事件,回调机制需要自定义View来实现,自定义View重写该View的事件处理方法即可。

      如MyButton.java继承了Button组件,要实现对按键的事件处理,则重写父类的boolean onKeyDown(int keyCode, KeyEvent event)方法即可,当然在main.xml中的定义也要相应的改变,如下:

      <nwpu.daisy.test.myButton ……/>

    未完待续

  • 相关阅读:
    NConsoler 介绍
    HOWTO:批量删除存储过程和表
    HOWTO:使ASP.NET网站Forms验证可以指定多个登录页面
    [架构模式实践]如何不让第三方服务/组件的故障阻碍开发和测试进度
    GDI+学习笔记
    脚印: SD2C 2009 参会小记(非技术篇)
    Expression Web使用问题,相关资源及今日阅读
    HOWTO:FirePHP乱码问题解决
    [ECSHOP挖寶]用戶注銷過程
    励志好文
  • 原文地址:https://www.cnblogs.com/deng303359/p/2368189.html
Copyright © 2020-2023  润新知