投稿

4月, 2019の投稿を表示しています

[Qiita] AndroidのOnClickListenerでの2度押しを防止したい

※この記事は以前Qiitaに投稿されていた古い記事ですAndroidでOnClickListenerを普通に実装して、頑張って連続タップするとイベントが2回発生して、例えば何か画面を開く処理が入ってたら画面が2つ起動しちゃったりするんですよね。
なのでこんな感じの拡張関数を作ってみました。fun View.setOnOneClickListener(onClick:(view: View?)-> Unit)= setOnClickListener {val lastClickTime =getTag(R.id.click_time)as? Long ?:0LsetTag(R.id.click_time, SystemClock.elapsedRealtime())if(SystemClock.elapsedRealtime()- lastClickTime <1000){return@setOnClickListener}onClick(it)}これでいいのか感が正直あるので、何か他に良い方法があったら誰か教えてほしいです。参考https://stackoverflow.com/questions/5608720/android-preventing-double-click-on-a-button/9950832元記事のQittaのコメントにて、こういうのもあるよと教えてもらいました(こっちのが良さそう)
https://github.com/JakeWharton/butterknife/blob/master/butterknife-runtime/src/main/java/butterknife/internal/DebouncingOnClickListener.java