之前处理按钮重复点击基本由两种思路:
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地址,如果觉得可以的话给点个赞和心啊。