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

未完待续

posted @   希-若愚  阅读(2178)  评论(3编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示