android防止连续点击的简单实现(kotlin)

首先 方法类:

package com.zhou.base.utils

/**
 * Created by zhou on 17/3/20.
 */
object ToolsUtil {
    //防止连续点击
    /** 判断是否是快速点击  */
    private var lastClickTime: Long = 0
    val isFastDoubleClick: Boolean
        get() {
            val time = System.currentTimeMillis()
            val timeD = time - lastClickTime
            if (timeD < 500) {
                return true
            }
            lastClickTime = time
            return false
        }
}

代码很容易理解,就是计算点击的时间差,从而控制可点击的频率。

创建两个类:
NoDoubleClickListener.kt

package com.zhou.base.listener

import android.view.View
import com.zhou.base.utils.ToolsUtil

/**
 * Created by zhou on 16/12/14.
 */
abstract class NoDoubleClickListener : View.OnClickListener {
    override fun onClick(v: View) {
        if (ToolsUtil.isFastDoubleClick) {
            return
        }
        onNoDoubleClick(v)
    }

    abstract fun onNoDoubleClick(v: View?)
}

NoDoubleOnItemClickListener.kt

package com.zhou.base.listener

import android.view.View
import android.widget.AdapterView
import com.zhou.base.utils.ToolsUtil

/**
 * Created by zhouruiyong on 16/12/14.
 */
abstract class NoDoubleOnItemClickListener : AdapterView.OnItemClickListener {
    override fun onItemClick(
        adapterView: AdapterView<*>?,
        view: View,
        position: Int,
        l: Long
    ) {
        if (ToolsUtil.isFastDoubleClick) {
            return
        }
        onNoDoubleItemClick(adapterView, view, position, l)
    }

    abstract fun onNoDoubleItemClick(
        adapterView: AdapterView<*>?,
        view: View?,
        position: Int,
        id: Long
    )
}

后面将view的点击事件设置为以上的类或者其子类,就可以防止连续点击了。

github地址:https://gitee.com/stonezry/AndroidDemo

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用 Kotlin 编写以下代码来实现 Android 开发中文本操作菜单: 1. 在 XML 文件中添加 TextView 组件: ``` <TextView android:id="@+id/text_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="This is some sample text." /> ``` 2. 在 Kotlin 文件中对 TextView 进行处理: ``` import android.view.ActionMode import android.view.Menu import android.view.MenuItem import android.widget.TextView import androidx.appcompat.app.AppCompatActivity class MainActivity : AppCompatActivity() { private lateinit var textView: TextView override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) textView = findViewById(R.id.text_view) textView.customSelectionActionModeCallback = object : ActionMode.Callback { override fun onCreateActionMode(mode: ActionMode, menu: Menu): Boolean { menuInflater.inflate(R.menu.text_view_menu, menu) return true } override fun onActionItemClicked(mode: ActionMode, item: MenuItem): Boolean { when (item.itemId) { R.id.menu_item_cut -> { textView.cut() mode.finish() return true } R.id.menu_item_copy -> { textView.copy() mode.finish() return true } R.id.menu_item_paste -> { textView.paste() mode.finish() return true } else -> return false } } override fun onDestroyActionMode(mode: ActionMode) {} override fun onPrepareActionMode(mode: ActionMode, menu: Menu): Boolean { return false } } } } ``` 在上面的 Kotlin 代码中,我们使用了自定义的 SelectionActionMode.Callback 对 TextView 进行处理,并在 ActionMode 中添加三个菜单选项:剪切、复制和粘贴。这些选项可以通过调用 TextView 的相应方法来执行操作。 希望这个答案对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值