Android

안드로이드 버튼 중복 클릭 막기

zerocool0713 2019. 1. 3. 15:58
반응형

ref : https://stackoverflow.com/questions/5608720/android-preventing-double-click-on-a-button

 

 

 

같은 방법이지만 좀 더 편하게 사용하려면 아래처럼 class를 만든 후 사용하자.

 

 

Kotlin Extension method & High order function

import android.os.SystemClock
import android.view.View

class OneClickListener(private var interval: Int=1000, private var onOneClick: (View) -> Unit) : View.OnClickListener {
    private var lastClick : Long = 0

    override fun onClick(p0: View?) {
        if(SystemClock.elapsedRealtime() - lastClick < interval){
            return
        }
        lastClick = SystemClock.elapsedRealtime()
        onOneClick(p0!!)
    }
}

//extension method
fun View.setOneClickListener(onClick: (View) -> Unit){
    val oneClick = OneClickListener{
        onClick(it)
    }
    setOnClickListener(oneClick)
}

 

위처럼 클래스를 하나 만들어 줬으면

 

 

어느 컴포넌트에서든 사용할 수 있다.

반응형