1 事件处理概述

为用户动作提供响应的机制就是事件处理

Android提供了两套强大的事件处理机制:
1.基于监听的事件处理
2.基于回调的事件处理

对于 Android 基于监听的事件处理而言,主要做法就是为 Android界面组件绑定特定的事件监听器。

对于 Android 基于回调的事件处理而言,主要做法就是重写 Android 组件特定的回调方法,或者重写 activity 的回调方法,Android 为绝大部分界面组件提供了时间响应的回调方法,开发者只要重写它们即可。

2 基于监听的事件处理

2.1监听的处理模型

在事件监听的处理模型中,主要涉及如下三类对象。

  • Event Source(事件源)事件发生的场所,通常就是各个组件,例如按钮、窗口、菜单等。

  • Event(事件)事件封装了界面组件上发生的特定事情(通常就是一次用户操作)。如果程序需要获得界面组件上所发生的事件的相关信息,一般通过 Event 对象来取得。

  • Event Listener(事件监听器)负责监听事件源所发生的事件,并对各种事件做出相应的响应。

在程序中实现事件监听器,通常有如下几种形式
内部类形式:将事件监听器类定义成当前类的内部类。
外部类形式:将事件监听器类定义成一个外部类。
Activity 本身作为事件监听器类:让 Activity 本身实现监听器接口,并实现事件处理方法。
匿名内部类形式:使用匿名内部类创建事件监听器对象。

  • 2.1.1内部类形式
public class MainActivity extends Acivity{    @Override    public void onCreate(Bundle savedInstanceState){        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        Button bn=(Button) findViewById(R.id.bn);        //为按钮绑定事件监听器, 将继承 xxxListener 的类进行实例化,作为参数。        bn.setOnClickListener(new MyClickListener());    }    //定义一个单机事件的监听器,要继承 xxxListener,重写onClick方法    class MyClickListener implements View.OnClickListener{        @Override        public void onClick(View v){            ``````````            `````````        }    }}
  • 2.1.2Activity 本身作为事件监听器类
public class MainActivity extends Acivity{    @Override    public void onCreate(Bundle savedInstanceState){        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        Button bn=(Button) findViewById(R.id.bn);        bn.setOnClickListener(this);    }    @Override    public void onClick(View v){        `````        `````    }}
  • 2.1.3匿名内部类作为事件监听器类
public class MainActivity extends Acivity{    @Override    public void onCreate(Bundle savedInstanceState){        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        Button bn=(Button) findViewById(R.id.bn);        bn.setOnClickListener(new OnClickListener(){            @Override            public void onClick(View v){                ``````                ``````            }        });    }}
  • 2.1.4 直接绑定到标签页

Android还有一种更简单的绑定事件监听器的方式,那就是直接在界面布局文件中为指定标签绑定事件处理方法

<Button  android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="点击" android:onClick="clickHandler" />

上面程序为 Button 按钮绑定了一个事件处理方法:clickHanlder,这就意味着开发者需要在该界面布局对应的 Activity 中定义一个void clickHanlder(View source)方法,该方法将会负责处理该按钮上的单击事件。

public class MainActivity extends Acivity{    @Override    public void onCreate(Bundle savedInstanceState){        super.onCreate(savedInstanceState);        setContentView(R.layout.main);    }    public void clickHandler(View source){        ```        ```    }}

关于 Android的事件的事件处理,我还有许多地方没有写到。本人只是提到些许而已!

更多相关文章

  1. android 事件分发机制详细解析
  2. Android之事件响应的两种模型分析
  3. Android(安卓)创建与解析XML(六)—— 比较与使用
  4. Android(安卓)创建与解析XML(六)—— 比较与使用
  5. android中的后退键——onBackPressed()的使用
  6. android 全局异常的处理 详解
  7. Android(安卓)图像处理资料
  8. Android异步消息框架
  9. android inputmanager中事件的传递流程

随机推荐

  1. Android(安卓)onUpdate
  2. 第八章 网络的时代—网络开发(3)
  3. 程序猿的技术博客Android客户端--博客园
  4. Android实现联动下拉框
  5. Android开发22——广播接收者BroadcastRe
  6. 初识Android(安卓)MVP模式
  7. Android首席设计师宣称移动概念已死,开发
  8. 酷盘PC版查看酷盘文件可以通过多种方式(A
  9. Android的自定义图片按钮ImageButton【第
  10. Android(安卓)UI开发专题