Android 实现连续多次点击

阅读: 评论:0

Android 实现连续多次点击

Android 实现连续多次点击

定义一个通用的抽象类:

public abstract class MultiClickListener : View.OnClickListener {private var count = 5 // 默认连续点击5次private var hits: LongArray = LongArray(count) //记录点击次数private var duration: Long = 2000L // 默认有效时间constructor()constructor(count: Int, duration: Long) {unt = countthis.duration = duration}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)Log.i("MainActivity", "valid click")// 将所有时间重置hits.forEachIndexed { index, _ ->hits[index] = 0}} else {Log.i("MainActivity", "not valid click")}}public abstract fun onClickValid(v: View?)}

使用:

findViewById<View>(st_continue_click).setOnClickListener(object : MultiClickListener() {override fun onClickValid(v: View?) {Toast.makeText(baseContext, "clicked me", Toast.LENGTH_SHORT).show()}})

本文发布于:2024-01-31 04:28:00,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170664648325473.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:Android
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23