Android 事件处理

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的事件的事件处理,我还有许多地方没有写到。本人只是提到些许而已!

你可能感兴趣的:(android,事件处理,Android)