• 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 ……/>

    未完待续

  • 相关阅读:
    fedora 20 install skype
    WebsitePanel(wsp)配置详解(安装指南)
    【转】SQL Server 2008下载 (附注册码)
    SQL SERVER树型数据处理时,函数递归调用问题,查询根节点,子节点函数
    150 Opening ASCII mode data connection. FTP连接的PASV和PORT方式
    如何在IIS7上配置 FTP7并使用IIS管理凭据方式进行验证?
    DZ!NT论坛 3.6.711删除用户各种错解决方案
    在虚拟机上安装红帽Linux.5.5.for.x86.服务器版系统(按针对安装oracle 10g作的配置)
    OpenStack Nova 制作 Windows 镜像
    HttpWebRequest访问时,错误:(401)未经授权。
  • 原文地址:https://www.cnblogs.com/deng303359/p/2368189.html
Copyright © 2020-2023  润新知