WEBサイト制作・アプリ開発・システム開発・ブランディングデザイン制作に関するご相談はお気軽にご連絡ください。
構想段階からじっくりとヒアリングし、お客様の課題にあわせたアプローチ手法でお客様の“欲しかった”をカタチにしてご提案いたします。
Blog スタッフブログ
Android
システム開発
[Android][Kotlin]ボタンの2度押し対策
システム開発担当のTFです。
※Android10対応(他バージョンの場合、細かい部分等が異なる事があります)
やり方
- Viewに対して、拡張関数を用いて、2度押し対策をしたクリックリスナーを追加する
- ボタンのクリック処理を登録したリスナーを使用する
参考
サンプル
package test.test
import android.view.View
// 拡張関数
fun View.setOnSingleClickListener(listener: () -> Unit) {
val delayMillis = 1000 // 二度押しを防止する時間
var pushedAt = 0L
setOnClickListener {
if (System.currentTimeMillis() - pushedAt < delayMillis) return@setOnClickListener
pushedAt = System.currentTimeMillis()
listener()
}
}
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
// 省略
// 追加した2度押し対策をしたクリックリスナーの利用
binding.loginButton.setOnSingleClickListener {
// ボタンを押した際の処理
}
}
}