同福

多个控件的点击事件的集中处理的技巧

介绍

介绍

我们开发 app 程序的时候很多控件都是会有点击事件响应的,如果在每个控件初始化的地方去 new View.OnClickListener 代码看起来乱糟糟的,也不方便维护

今天我们来将一下如何将这一众控件的点击事件捆绑到一起处理的技巧

教程

常规方式

btnA.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // do sth
    }
});
btnB.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // do sth
    }
});

集中方式

导入事件监听

给 Activity 导入 View.OnClickListener 对象

public class MainActivity extends BaseClass implements View.OnClickListener

重载事件处理

重载 onClick 方法

@Override
public void onClick(View v) {
    switch (v.getId()){
        case R.id.btn_a:
            // do sth
            break;
        case R.id.btn_b:
            // do sth
            break;
    }
}

绑定控件事件监听

在设置控件事件监听的时候只需要传入 this 就可以了

btnA.setOnClickListener(this);
btnB.setOnClickListener(this);

效果

我们现在只需要在 onClick 方法里进行分别的处理就可以了