博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android学习笔记-事件处理机制
阅读量:4451 次
发布时间:2019-06-07

本文共 1353 字,大约阅读时间需要 4 分钟。

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

未完待续

转载于:https://www.cnblogs.com/deng303359/archive/2012/02/25/2368189.html

你可能感兴趣的文章
扫描目录下的文件并拼接在一起
查看>>
ELK 分布式日志处理 10.12
查看>>
Java虚拟机详解05----垃圾收集器及GC参数
查看>>
7. 单位,移动布局
查看>>
inux中bin与sbin目录的作用及区别介绍
查看>>
USACO 3.1 Contact
查看>>
Office之什么是高内聚低耦合
查看>>
一些奇怪的问题求回答
查看>>
这些年踩过的坑
查看>>
iOS开发拓展篇——如何把项目托管到GitHub
查看>>
性能优化之数据库优化
查看>>
类的继承、菱形继承、派生、多态
查看>>
mysql约束
查看>>
javascript鼠标及键盘事件总结及案例
查看>>
mysql表之间的关系及级联操作
查看>>
mac 搭建virtualenv的那些坑
查看>>
多路复用IO模型
查看>>
并发、串行、并行及多道技术原理
查看>>
hashlib、pickle、hmac、logging模块使用
查看>>
javascript常用知识点总结
查看>>