java - 如何在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()
}
谢谢你们 !
解决方案
推荐阅读
- java - 使用 GSON 的 JsonReader 流式传输 Json 文件时,您可以将对象转储为字符串吗?
- r - 用基于两个类别的平均值替换值
- javascript - Node-RED:无法访问 js 文件中选定的下拉值
- certificate - 使用相同的证书签署两个 buildType
- sequelize.js - Sequelize:如何将连接表的 PK 设置为外键对,以便能够在连接表实例上使用 save() 而不会触发“无 PK 错误”?
- javascript - 未检测到 PDF 的余印
- javascript - Javascript - 删除年份并在日期名称中写入完整的工作日名称
- html - CSS boxshadow不重叠下拉
- iis - Owin 覆盖 IIS 客户端证书映射规则上的身份验证
- ruby-on-rails - 为什么我的 regexp_replace 语句返回 \0001?