如何从单击按钮调用的函数内部 return 到 OnClickListener?

How to return to OnClickListener from inside a function that gets invoked by a click on Button?

我有一些行代码可以防止多次快速单击按钮。 如果我每次都在 Button.OnClickListener 中使用该代码,它就可以正常工作。 但是每次调用相同的代码并不是一个好主意,所以我想将代码保留为一个全局函数,并在需要时调用该函数。

这是我的代码:

lastClickTime = 0L
MyButton.setOnClickListener {
     if (SystemClock.elapsedRealtime() - lastClickTime < 1000) {
          return@setOnClickListener
     }
     lastClickTime = SystemClock.elapsedRealtime()

我正在尝试创建一个全局方法来从每个 Button.OnClickListener 调用。但是我不知道什么代码可以代替 return@setOnClickListener.

var lastClickTime = 0L
fun preventMultiQuickClick() {
    if (SystemClock.elapsedRealtime() - lastClickTime < 1000) {
        //I WANT TO RETURN TO THE button.setOnClickListener 
        //OF THE BUTTON WHICH INVOKES THIS FUNCTION LIKE IN ABOVE CODE
    }
    lastClickTime = SystemClock.elapsedRealtime()
}


Button.setOnClickListener {
    preventMultiQuickClick()
    //do other stuffs
}

我怎样才能做到这一点?任何帮助将不胜感激。

你可以这样做:

var lastClickTime = 0L
fun preventMultiQuickClick(): Boolean  {
    return if (SystemClock.elapsedRealtime() - lastClickTime < 1000) {
        false
    }
    lastClickTime = SystemClock.elapsedRealtime()
    true
}


Button.setOnClickListener {
    if(!preventMultiQuickClick()) {
        //do other stuffs
    }
}