Java 如何在android中使用kotlin有效避免多次点击菜单项

Java 如何在android中使用kotlin有效避免多次点击菜单项,java,android,kotlin,Java,Android,Kotlin,我使用一个菜单按钮在工具栏上,但我想避免多次点击 类安全菜单单击侦听器( 专用var defaultInterval:Int=1000, 私人val onSafeClick:(菜单项?->单位) ):Toolbar.OnMenuItemClickListener{ 私有变量lastTimeClicked:Long=0 重写菜单项单击(项:菜单项?):布尔值{ var recentClickTime:Long=上次单击的时间 lastTimeClicked=System.currentTimeMi

我使用一个菜单按钮在工具栏上,但我想避免多次点击

类安全菜单单击侦听器(
专用var defaultInterval:Int=1000,
私人val onSafeClick:(菜单项?->单位)
):Toolbar.OnMenuItemClickListener{
私有变量lastTimeClicked:Long=0
重写菜单项单击(项:菜单项?):布尔值{
var recentClickTime:Long=上次单击的时间
lastTimeClicked=System.currentTimeMillis()
if(System.currentTimeMillis()-recentClickTimeUnit){
val safeMenuClickListener=safeMenuClickListener(默认间隔=1000,onSafeClick=({
onSafeClick(it)
}))
setOnMenuItemClickListener(安全菜单单击Listener)
}
//SetOnMenuClickListner而不是setOnMenuItemClickListner
toolbar.setOnMenuClickListner{
doSomething()
}

没有直接的方法。。您可以使用一个标志来限制进程。。有点什么。点击按钮后禁用它?节流是我找到的最好的方法。禁用它对快速双击不起作用。
    class SafeMenuClickListener(
    private var defaultInterval: Int = 1000,
    private val onSafeClick: (MenuItem?) -> Unit
): Toolbar.OnMenuItemClickListener {
  private var lastTimeClicked: Long = 0
  override fun onMenuItemClick(item: MenuItem?): Boolean {
    var recentClickTime: Long = lastTimeClicked
    lastTimeClicked = System.currentTimeMillis()
    if(System.currentTimeMillis() - recentClickTime < defaultInterval){
      return false
    } else{
      onSafeClick(item)
      return true
    }
  }
}



    //In another kotlin file create a function 
fun Toolbar.setSafeMenuClickListener(onSafeClick: (MenuItem?) -> Unit) {
    val safeMenuClickListener = SafeMenuClickListener(defaultInterval = 1000,onSafeClick = ({
        onSafeClick(it)
    }))
    setOnMenuItemClickListener(safeMenuClickListener)
}



 // SetOnMenuClickListner instead of setOnMenuItemClickListner
    toolbar.setOnMenuClickListner{
        doSomething()
    }