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 屏幕监听滑动事件
  4. android inputmanager中事件的传递流程
  5. android ListView嵌套checkbox并取代checkbox点击事件
  6. EventBus 《三》 事件的具体用法及其讲解
  7. Android事件处理分析+Android事件处理 +Android输入事件流程
  8. (一)Android事件分发机制 - View篇
  9. Android事件分发/传递机制总结

随机推荐

  1. android-ndk-r6b编译NDK
  2. Anko for Android
  3. android仿微信聊天页面,以及实现语音功能
  4. [原创] Failed to resolve: com.android.
  5. Android(安卓)消息处理机制: Handler 中
  6. Android(安卓)google VR全景图导航
  7. Android中inflate参数的写法:
  8. No usable Android(安卓)build tools fou
  9. Android(安卓)Studio 解决build.gradle运
  10. Android(安卓)Map 新用法:MapFragment