gpt4 book ai didi

android - 防止或避免 Android 应用程序中的多次点击(Kotlin 语言)

转载 作者:行者123 更新时间:2023-12-04 23:46:36 31 4
gpt4 key购买 nike

如何防止用户多次点击按钮?
实际问题:如果用户快速点击按钮。按钮单击多次执行我的 api 调用。
应用的解决方案不起作用:即使您尝试在 onClick() 之后直接禁用按钮,仍然有可能发生多次单击。

最佳答案

解决 Android 多次点击问题 — Kotlin
我搜索了社区并找到了惊人的解决方案,例如创建一个自定义点击监听器,该监听器将保留最后一次点击时间并防止在特定时间段内点击
但是——作为 Kotlin 的忠实粉丝——我正在考虑使用 lambda 和闭包的力量来非常顺利地使用一些东西。
所以我想出了这个实现,希望对你有所帮助
第 1 步:创建名为 SafeClickListener.kt 的类

class SafeClickListener(

private var defaultInterval: Int = 1000,
private val onSafeCLick: (View) -> Unit
) : View.OnClickListener {
private var lastTimeClicked: Long = 0
override fun onClick(v: View) {
if (SystemClock.elapsedRealtime() - lastTimeClicked < defaultInterval) {
return
}
lastTimeClicked = SystemClock.elapsedRealtime()
onSafeCLick(v)
}
}
第 2 步:添加扩展功能以使其适用于任何 View ,这将创建一个新的 SafeClickListener 并将工作委托(delegate)给它。
    fun View.setSafeOnClickListener(onSafeClick: (View) -> Unit) {
val safeClickListener = SafeClickListener {
onSafeClick(it)
}
setOnClickListener(safeClickListener)
}
第 3 步:现在它很容易使用。只需将 button1.setonclicklistner 替换为 setSafeOnClickListener。
settingsButton.setSafeOnClickListener {
showSettingsScreen()
}

关于android - 防止或避免 Android 应用程序中的多次点击(Kotlin 语言),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65856021/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com