zoukankan      html  css  js  c++  java
  • 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 ……/>

    未完待续

  • 相关阅读:
    Eclipse快捷键大全,导包快捷键:ctrl+Shift+/【转】
    xml合并工具【原】
    解决win10无线无故断网,重启才恢复正常的情况【原】
    PL/SQL可以连oracle,但是jdbc连不上 【转】
    Java 编程下使用 Class.forName() 加载类【转】
    Http请求中Content-Type讲解以及在Spring MVC中的应用【转】
    activeMQ
    概念,包括对象,接口,类,方法
    javabean
    session
  • 原文地址:https://www.cnblogs.com/deng303359/p/2368189.html
Copyright © 2011-2022 走看看