android 防止重复点击

1、kotlin实现

通过 Kotlin 拓展, 在拓展类中新增两个方法

fun View.OnClickListener.initSingleClickListener(vararg views: View) {
views.map {
it.setOnSingleClickListener(this)
}
}

fun View.setOnSingleClickListener(listener: View.OnClickListener) {
setOnClickListener {
isClickable = false
listener.onClick(this)
postDelayed({ isClickable = true }, 1000)
}
}

使用:
initSingleClickListener(button1, button2)

Activity 或者 Fragment 实现 View.OnClickListener 接口, 正常使用就可以了
override fun onClick(v: View){
// todo
}

2、java实现

方案一:
项目中如果使用了 Rx,可以引入 JakeWharton 大神的 RxBiding 库,不仅实现了防止重复点击,而且防抖,节流什么的,要啥有啥。

方案二:classpath ‘com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.4’ 类似的库

热门文章

暂无图片
编程学习 ·

C++排雷:16. #pragma warning的几种用法

#pragma warning只对当前文件有效(对于.h,对包含它的cpp也是有效的),而不是对整个工程的所有文件有效。当该文件编译结束,设置也就失去作用。 #pragma warning(push)是保存当前的编译器警告状态;#pragma warning(push, n) 存储当前报警设置,并设置报警级别为n。n为从1到…
暂无图片
编程学习 ·

Java工具类-BASE64加解密

1 引入apache commons-codec依赖<dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.10</version> </dependency>2 使用Base64.encodeBase64加密public static String base64Enc…
暂无图片
编程学习 ·

Java多线程编程复习总结(一)

Java中多线程概述 一、基本概念 进程和线程进程是程序运行的实例,比如Java程序就是一个Java虚拟机进程 每个进程中可以包含多个线程,每个线程完成各自不同的任务,在Java平台中一个线程对应一个对象但是这个对象和普通类中声明的对象不一样,不是分配在对空间中的;而是,JVM…
暂无图片
编程学习 ·

30 个纯 HTML5 实现的游戏

作者:Danny Markov 来源:tutorialzin 译者:前端小智浏览器和 JavaScript 的功能逐年不断的变强变大。曾几何时,任何类型的游戏都需要Flash。但随着 HTML5 发展,HTML5 + WebGL 游戏式就慢慢占领着这个舞台。以下是30款流行的游戏,它们可以在所有现代浏览器中运行,并且只使…
暂无图片
编程学习 ·

算法 动态规划 0-1背包

动态规划2 给定n种物品和1个背包,物品i的重量是wi,其价值为vi,背包的容量为C。要求选择装入背包的物品,使得装入背包中物品的总价值最大。 例如5个物品,wi[] = { 2,4,6,3,8},vi[]={6,6,3,7,5},背包的容量为10 #include<iostream> using namespace std; #include<…
暂无图片
编程学习 ·

Obliv-C使用详解

前期说明 Obliv-C是一款GCC包装器,其作者在C语言的基础上对其进行了一定的类C处理,添加了一些规则限制,用于模拟实现混淆电路 Obliv-C不需要手动混淆,只需要调用其中的函数便可实现混淆电路,其不涉及真实硬件电路仿真,即无法导出函数对应的基本元电路(也可能是博主没有成…
暂无图片
编程学习 ·

MySQL数据类型(最大值和最小值--类型定义的值)

MySQL数据类型定义的值:1、整型MySQL数据类型含义(有符号)tinyint(m)1个字节 范围(-128~127)smallint(m)2个字节 范围(-32768~32767)mediumint(m)3个字节 范围(-8388608~8388607)int(m)4个字节 范围(-2147483648~2147483647)bigint(m)8个字节 范围(+-9.22*10的18次方)取…
暂无图片
编程学习 ·

Hadoop(二)——HDFS的 I/O 流操作

API操作的HDFS系统都是框架封装好的,可以采用 I/O 流的方式实现数据的上传和下载。 HDFS文件上传 1、需求:将本地D盘上的honglou.txt文件上传到HDFS根目录 2、代码块@Test public void putFileToHDFS() throws IOException,InterruptedException,URISyntaxException{//1、获取…
暂无图片
编程学习 ·

萝卜小姐——知乎上看到的好用的IOT平台

作者:码云 Gitee 链接:https://www.zhihu.com/question/266251753/answer/827948303 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。码云Gitee 上有几个不错的物联网平台项目推荐给你,希望对你有帮助:)推荐项目1、开源的、分布式的物联…
暂无图片
编程学习 ·

python_ask_02-Are object and instance the same?

ID = python_ask_02 文章目录QuestionAnswerReference Question Are object and instance the same? Answer Are they the same? My answer is NO. We say everything is object, but we never say everything is instance. Class and instance are both object.「对象」是一…
暂无图片
编程学习 ·

数据结构-字典

字典使用哈希表作为底层实现,一个哈希表里面可以有多个哈希表节点,而每个哈希表节点就保存了字典中的一个键值对 哈希表 哈希表由dict.h/dictht结构定义 typedef struct dictht {// 哈希表数组dictEntry **table;// 哈希表大小unsigned long size;// 哈希表大小掩码,用于计算…
暂无图片
编程学习 ·

软件测试(软件测试生命周期,描述一个bug,定义bug级别,bug生命周期,如何开始第一次测试,测试执行和bug管理,测试工作中的人际关系处理)

一、软件测试的生命周期 对比软件的生命周期和bug的生命周期 软件的生命周期:需求分析——计划——设计——编码——测试——运行维护 软件测试的生命周期:需求分析——测试计划——测试设计、测试开发——测试执行——测试评估 bug的生命周期: 软件测试&软件开发生…
暂无图片
编程学习 ·

【springboot高级】(二:自定义系统监听器,实现ApplicationListener接口。(使用篇))

springboot在系统启动的时候,提供了很多的监听,有时候我们需要根据一些业务,在启动的时候监听springboot启动的某个节点,然后做相应的事情,那么这节就来讲一下如何实现自定义监听器,在springboot发送事件的时候,我们能够监听到。 (注意:自定义监听器和自定义初始化器原…
暂无图片
编程学习 ·

将公式图片识别为LaTeX代码

简介 我们在写论文或者是报告的时候,经常需要把pdf里,或者是老师PPT上的公式图片,转换成LaTeX代码。如果公式太多,那么输入起来太过于繁多。 无论是将公式图片转换为LaTeX代码,还是转换到Mathtype中,都需要我们有一款工具来识别公示图片。 公式助手 我自己搭建了一个公众…
暂无图片
编程学习 ·

vue循环渲染,点击添加类,获取id

一.思路总结 1.遍历出来对应的数组, 在click中赋值 遍历出来的item。 2.class进行决定是否显示,一点击就把对应的item赋到active中 3.此时active就和item.id一模一样的文本,然后返回一个true能显示当前的了 4.把最后一个瑕疵补上, 让第一个默认选中。就是把active放一个数值…
暂无图片
编程学习 ·

期末复习、化学反应工程科目(第八、九章)

@Author:Runsen @Date:2020/7/2人生最重要的不是所站的位置,而是内心所朝的方向。只要我在每篇博文中写得自己体会,修炼身心;在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰难,奋勇前行,不忘初心,砥砺前行,人生定会有所收获,不留遗憾 (作者:Runsen )作者介…
暂无图片
编程学习 ·

论文查找路径 查找IEEE论文 免费查看的方法

爱学术 深圳图书馆 IEEE IEEE转免费查看网站网址 论文免费查看 百度学术 百度学术搜索到的内容最全,但大部分都是其他网站的链接 查看IEEE的文章 可以先使用百度学术找到IEEE的链接(直接使用IEEE搜索反而有时候搜不到) 打开IEEE的链接,并复制 看看论文免费查看网站,将链接…
暂无图片
编程学习 ·

浅谈工厂模式

工厂模式 实现了创建者和调用者的分离。在创建一个对象时不向客户暴露内部细节,并提供一个创建对象的通用接口。 核心本质 实例化对象,用工厂方法代替new操作。 将选择实现类、创建对象统一管理和控制。从而将调用者跟我们的实现类解耦。 详细分类简单工厂模式:用来生产同一…