Android 事件处理模型(二) 基于监听接口的事件处理

本文探讨Android事件处理模型,重点是监听接口的使用,包括OnClickListener、OnLongClickListener和OnFocusChangeListener等。当事件发生时,系统封装事件并发送给监听器进行处理。虽然未详细说明系统如何获取和封装事件,但介绍了各种接口的功能和应用场景。
摘要由CSDN通过智能技术生成

关于监听接口事件处理模型主要对象为:

 1. 事件源:发生事件的控件。

 2. 事件监听器:由组件实现特定接口,用以监听该组件的事件。


事件处理流程:

A. 事件源对象注册监听

B. 事件发生,系统封装事件并把事件发送给响应的事件源的监听器。(找了半天都没找到系统怎么获取和封装事件源)

C. 系统调用监听器响应处理方法来处理事件。


主要监听接口介绍:

1. OnClickListener

该接口主要负责监听点击事件。在触控模式下,是在某个View上按下并抬起的组合动作,而在键盘模式下,是某个View获得焦点后点击确定键或者按下轨迹球事件。该接口为:

package android.view;
public class View implements Drawable.Callback, KeyEvent.Callback, AccessibilityEventSource {
 /**
     * Interface definition for a callback to be invoked when a view is clicked.
     */
    public interface OnClickListener {
        /**
         * Called when a view has been clicked.
         * @param v The view that was clicked.
         */
        void onClick(View v);
    }
}

路径:frameworks/base/core/java/android/view/View.java
实现该接口的方法为:

class TestOnClickListener extends Activity implements OnClickListener {
    ..........
    Button myButton;
    public void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	myButton = new ...
	myButton.setOnClickListener(this);//注册监听
    }
    @Override
    public void onClick(View v) {//view为监听到的组件

        ...//自定义事件处理方法,上一次写了回调机制,其实这儿也是一个回调的应用

    }
    ..........
}

2. OnLongClickListener

该接口与之前介绍的OnClickListener接口原理基本相同,只是该接口为View长按事件的捕捉接口,即当长时间按下某个View时触发的事件。

3. OnFocusChangeListener

该接口用来处理控件焦点发生改变的事件。如果注册了该接口,当某个控件失去焦点或者获得焦点时都会触发该接口中的

回调方法(OnFocusChange)。

4. OnKeyListener

是对手机键盘进行监听的接口,通过对某个View注册该监听,当View获得焦点并有键盘事件时,便会触发该接口中的回调方法。


主要参考:吴亚峰的Android核心技术


其实其他接口都差不多了,只是触发条件和传递的参数有所不同罢了,机制都是一样的。不过没有找到关于“系统怎么获取事件源和封装事件源,并把该事件传递给相应组件”的资料...这要等以后了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值