android防止连续点击的简单实现(kotlin)
首先 方法类:
package com.zhou.base.utils/**
* Created by zhou on 17/3/20.
*/
object ToolsUtil {
//防止连续点击
/** 判断是否是快速点击*/
private var lastClickTime: Long = 0
val isFastDoubleClick: Boolean
get() {
val time = System.currentTimeMillis()
val timeD = time - lastClickTime
if (timeD < 500) {
return true
}
lastClickTime = time
return false
}
}
代码很容易理解,就是计算点击的时间差,从而控制可点击的频率。
创建两个类:
NoDoubleClickListener.kt
package com.zhou.base.listenerimport android.view.View
import com.zhou.base.utils.ToolsUtil/**
* Created by zhou on 16/12/14.
*/
abstract class NoDoubleClickListener : View.OnClickListener {
override fun onClick(v: View) {
if (ToolsUtil.isFastDoubleClick) {
return
}
onNoDoubleClick(v)
}abstract fun onNoDoubleClick(v: View?)
}
NoDoubleOnItemClickListener.kt
package com.zhou.base.listenerimport android.view.View
import android.widget.AdapterView
import com.zhou.base.utils.ToolsUtil/**
* Created by zhouruiyong on 16/12/14.
*/
abstract class NoDoubleOnItemClickListener : AdapterView.OnItemClickListener {
override fun onItemClick(
adapterView: AdapterView<*>?,
view: View,
position: Int,
l: Long
) {
if (ToolsUtil.isFastDoubleClick) {
return
}
onNoDoubleItemClick(adapterView, view, position, l)
}abstract fun onNoDoubleItemClick(
adapterView: AdapterView<*>?,
view: View?,
position: Int,
id: Long
)
}
后面将view的点击事件设置为以上的类或者其子类,就可以防止连续点击了。
【android防止连续点击的简单实现(kotlin)】github地址:https://gitee.com/stonezry/AndroidDemo
推荐阅读
- android第三方框架(五)ButterKnife
- Android中的AES加密-下
- 带有Hilt的Android上的依赖注入
- android|android studio中ndk的使用
- Android事件传递源码分析
- RxJava|RxJava 在Android项目中的使用(一)
- Android7.0|Android7.0 第三方应用无法访问私有库
- 深入理解|深入理解 Android 9.0 Crash 机制(二)
- Android|Android install 多个设备时指定设备
- Unity和Android通信系列文章2——扩展UnityPlayerActivity