Sách

Thứ Bảy, 31 tháng 8, 2019

OnSingleClickListener

Java:
public abstract class OnSingleClickListener implements View.OnClickListener {

    private static final long MIN_CLICK_INTERVAL = 800;

    private long mLastClickTime;

    public abstract void onSingleClick(View view);

    @Override
    public final void onClick(View view) {
        long currentClickTime = SystemClock.uptimeMillis();
        long elapsedTime = currentClickTime - mLastClickTime;
        mLastClickTime = currentClickTime;
        if(elapsedTime < MIN_CLICK_INTERVAL)
            return;
        onSingleClick(view);        
    }

}


Kotlin:
abstract class OnSingleClickListener : View.OnClickListener {

    private var mLastClickTime: Long = 0

    abstract fun onSingleClick(view: View)

    override fun onClick(view: View) {
        val currentClickTime = SystemClock.uptimeMillis()
        val elapsedTime = currentClickTime - mLastClickTime
        mLastClickTime = currentClickTime
        if (elapsedTime < MIN_CLICK_INTERVAL)
            return
        onSingleClick(view)
    }

    companion object {
        private const val MIN_CLICK_INTERVAL: Long = 800
    }
}