1、定义工具类
ButtonUtils
object ButtonUtils {
private var lastClickTime = 0L
private var lastButtonId = -1
fun isFastDoubleClick(buttonId: Int, diff: Long = 1000L): Boolean {
val time = System.currentTimeMillis()
val timeD = time - lastClickTime
if (timeD < 0) {
return false
}
if (lastButtonId == buttonId && lastClickTime > 0 && timeD < diff) {
return true
}
lastClickTime = time
lastButtonId = buttonId
return false
}
}
OnProhibitFastClickListener
abstract class OnProhibitFastClickListener(var diff: Long = 1000L) : View.OnClickListener {
abstract fun onFilterClick(v: View?)
override fun onClick(v: View?) {
v?.let {
if (!ButtonUtils.isFastDoubleClick(it.id, diff)) {
onFilterClick(it)
}
}
}
}
2、使用
button.setOnClickListener(object : OnProhibitFastClickListener() {
override fun onFilterClick(v: View?) {
//TODO
}
}
})