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

简介: 安卓一行代码实现避免按钮重复点击(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")
                }
            }
        }
    }
目录
相关文章
|
4天前
|
安全 Android开发 Kotlin
Android面试题之Kotlin协程并发问题和互斥锁
Kotlin的协程提供轻量级并发解决方案,如`kotlinx.coroutines`库。`Mutex`用于同步,确保单个协程访问共享资源。示例展示了`withLock()`、`lock()`、`unlock()`和`tryLock()`的用法,这些方法帮助在协程中实现线程安全,防止数据竞争。
11 1
|
4天前
|
安全 Android开发 C++
在 Android 中使用 Kotlin 调用动态库
在 Android 中使用 Kotlin 调用动态库
11 0
|
10天前
|
Java Android开发 Kotlin
Android面试题:App性能优化之Java和Kotlin常见的数据结构
Java数据结构摘要:ArrayList基于数组,适合查找和修改;LinkedList适合插入删除;HashMap1.8后用数组+链表/红黑树,初始化时预估容量可避免扩容。SparseArray优化查找,ArrayMap减少冲突。 Kotlin优化摘要:Kotlin的List用`listOf/mutableListOf`,Map用`mapOf/mutableMapOf`,支持操作符重载和扩展函数。序列提供懒加载,解构用于遍历Map,扩展函数默认参数增强灵活性。
14 0
|
11天前
|
存储 算法 Java
Android 进阶——代码插桩必知必会&ASM7字节码操作
Android 进阶——代码插桩必知必会&ASM7字节码操作
33 0
|
11天前
|
开发工具 Android开发
Android 代码自定义drawble文件实现View圆角背景
Android 代码自定义drawble文件实现View圆角背景
16 0
|
11天前
|
XML Java Android开发
Android RecyclerView用代码动态设置item的selector
Android RecyclerView用代码动态设置item的selector
15 0
|
11天前
|
安全 Java Android开发
安卓开发中的新趋势:Kotlin与Jetpack的完美结合
【6月更文挑战第20天】在不断进化的移动应用开发领域,Android平台以其开放性和灵活性赢得了全球开发者的青睐。然而,随着技术的迭代,传统Java语言在Android开发中逐渐显露出局限性。Kotlin,一种现代的静态类型编程语言,以其简洁、安全和高效的特性成为了Android开发中的新宠。同时,Jetpack作为一套支持库、工具和指南,旨在帮助开发者更快地打造优秀的Android应用。本文将探讨Kotlin与Jetpack如何共同推动Android开发进入一个新的时代,以及这对开发者意味着什么。
|
12天前
|
存储 Java 数据库连接
Android Java开发异步
【6月更文挑战第15天】
|
14天前
|
安全 Java 编译器
Android面试题之Java 泛型和Kotlin泛型
**Java泛型是JDK5引入的特性,用于编译时类型检查和安全。泛型擦除会在运行时移除类型参数,用Object或边界类型替换。这导致几个限制:不能直接创建泛型实例,不能使用instanceof,泛型数组与协变冲突,以及在静态上下文中的限制。通配符如<?>用于增强灵活性,<? extends T>只读,<? super T>只写。面试题涉及泛型原理和擦除机制。
18 3
Android面试题之Java 泛型和Kotlin泛型
|
15天前
|
安全 JavaScript 前端开发
kotlin开发安卓app,JetPack Compose框架,给webview新增一个按钮,点击刷新网页
在Kotlin中开发Android应用,使用Jetpack Compose框架时,可以通过添加一个按钮到TopAppBar来实现WebView页面的刷新功能。按钮位于右上角,点击后调用`webViewState?.reload()`来刷新网页内容。以下是代码摘要: