Android 多点击监听器
代码语言:javascript
代码运行次数:0运行
复制
abstract class MultiClickListener(var count: Int = 5, var duration: Long = 2000) : View.OnClickListener {
//记录点击次数
private var hits: LongArray = LongArray(count)
override fun onClick(v: View?) {
// 将 hits 数组内所有元素左移一个位置
System.arraycopy(hits, 1, hits, 0, hits.size - 1)
// 获取当前系统已经启动的时间
hits[hits.size - 1] = SystemClock.uptimeMillis()
if (hits[0] >= (SystemClock.uptimeMillis() - duration)) {
// 在有效时间内已经连续点击了 count 次,算一次有效点击
onClickValid(v)
// 将所有时间重置
hits.forEachIndexed { index, _ ->
hits[index] = 0
}
}
}
//当连续多次点击有效时回调
abstract fun onClickValid(v: View?)
}
发布评论