首页 > 解决方案 > 如何在EditText中长按选择一个单词?

问题描述

我使用 EditText,我希望允许用户在长按单词时选择文本。对于某些设备,它可以完美运行,但对于其他设备,长按不会选择单词。

例如,对于某些设备,当我长按 EditText 时,只会显示光标。要选择我必须再次按,然后全选,然后移动光标...

如何在长按时选择按下的单词?

解决方案

根据建议,我为 EditText 创建了一个扩展名,它选择了当前选择的单词:

fun EditText.selectCurrentWord() {
    val textSpan = text
    val selection = selectionStart
    val pattern = Pattern.compile("\\w+")
    val matcher = pattern.matcher(textSpan)
    var start: Int
    var end: Int

    while (matcher.find()) {
        start = matcher.start()
        end = matcher.end()

        if (selection in start..end) {
            setSelection(start, end)
            break
        }
    }

    performLongClick()
}

谢谢你们 !

标签: javaandroidkotlin

解决方案


推荐阅读