Java 如何在EditText中长按选择单词?

Java 如何在EditText中长按选择单词?,java,android,kotlin,Java,Android,Kotlin,我使用EditText,我想允许用户在长按单词时选择文本。对于某些设备,它工作得很好,但对于其他设备,长按不选择word 例如,对于某些设备,当我长按EditText时,只显示光标。要选择,我必须再次按,然后选择全部,然后移动光标 如何选择长按时按下的单词 解决方案 根据建议,我为EditText创建了一个扩展,它选择当前选择的单词: fun EditText.选择CurrentWord(){ val textSpan=text val selection=selectionStart val

我使用EditText,我想允许用户在长按单词时选择文本。对于某些设备,它工作得很好,但对于其他设备,长按不选择word

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

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

解决方案

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

fun EditText.选择CurrentWord(){
val textSpan=text
val selection=selectionStart
val pattern=pattern.compile(\\w+)
val matcher=pattern.matcher(textSpan)
变量开始:Int
变量结束:Int
while(matcher.find()){
start=matcher.start()
end=matcher.end()
如果(开始..结束中的选择){
选举(开始、结束)
打破
}
}
执行长单击()
}

谢谢大家!

长按一下就调用editText.setSelection(pos)?首先,应将光标放在起始位置(位置),然后调用
setSelection(endPos)