安卓一行代码实现避免按钮重复点击(AOP)java和kotlin都能使用

之前处理按钮重复点击基本由两种思路:

    1、第一种是点击之后禁止点击,然后等操作执行完毕之后再放开点击。

    2、第二种是重写OnclickListenrer方法,在里面进行一些操作。

但是上面两种方式都对代码由侵入性。AOP很好的解决了这个问题。

我已经写好了代码,大家直接添加依赖进行使用即可。

aop的方式是实现防止按钮多次点击,java和kotlin都能使用

使用方法很简单,需要几步配置,配置完成之后直接添加注解即可使用,下面是配置方法:
1、在项目的build.gradle中的buildscript中的dependencies添加:

 dependencies {
        ...
        classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.4'
    }

2、在项目的build.gradle中的allprojects中的repositories添加:

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

3、在app的build.gradle中的最上面添加

apply plugin: 'android-aspectjx'

4、在app的build.gradle中的dependencies添加

implementation 'com.github.zhujiang521:AndroidAOP:1.0.1'

使用方法

直接在按钮的点击事件上面添加注解即可使用:
在java中:

@SingleClick
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btnClick2:
                ToastUtils.showShort("哈哈哈");
                Log.e("刘沛星","wwww");
                break;
        }
    }

在kotlin中:

@SingleClick
    override fun onClick(v: View?) {
        if (v != null) {
            when(v.id){
                R.id.btnClick ->{
                    ToastUtils.showShort("哈哈哈")
                    Log.e("刘沛星","wwww")
                }
            }
        }
    }

默认间隔时间为1500毫秒,可以自行修改,在注解后面添加括号,在括号中声明需要的时间值即可。

@SingleClick(1000)
    override fun onClick(v: View?) {
        if (v != null) {
            when(v.id){
                R.id.btnClick ->{
                    ToastUtils.showShort("哈哈哈")
                    Log.e("刘沛星","wwww")
                }
            }
        }
    }

OK。最后附上Github地址,如果觉得可以的话给点个赞和心啊。

发布了87 篇原创文章 · 获赞 248 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/haojiagou/article/details/90176568