Android 文字选择取决于手机
在我的应用程序中,我有一个编辑文本,用户可以在其中选择文本的一部分。问题在于,选择行为因手机而异:对于一款手机,用户可以正常选择,但对于另一款手机,用户必须点击文本指示器,然后点击“全选” 如何将第一个行为设置为默认行为?为什么手机之间的行为有所不同 谢谢你的回答,祝你有愉快的一天 编辑: 现在,我使用此方法选择包含光标的单词:Android 文字选择取决于手机,android,android-edittext,Android,Android Edittext,在我的应用程序中,我有一个编辑文本,用户可以在其中选择文本的一部分。问题在于,选择行为因手机而异:对于一款手机,用户可以正常选择,但对于另一款手机,用户必须点击文本指示器,然后点击“全选” 如何将第一个行为设置为默认行为?为什么手机之间的行为有所不同 谢谢你的回答,祝你有愉快的一天 编辑: 现在,我使用此方法选择包含光标的单词: fun EditText.selectCurrentWord() { val textSpan = text val selection = selec
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
}
}
}
但现在的问题是,选择的开始和结束处的游标不会出现
编辑文本是可选择的,并且
isCursorVisible
设置为true。您可以尝试使用按钮
选择文本
EditText myET = findViewById(R.id.myET);
Button selectBtn = findViewById(R.id.selectBtn);
selectBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myET.setSelectAllOnFocus(true);
myET.selectAll();
}
});
您可以使用打开上下文菜单
openContextMenu(myET);
您还可以获得光标的起点和终点的位置
myET.getSelectionStart();
myET.getSelectionEnd();
参考答案
myET.performLongClick();
myET.setSelection(0, myET.length());
希望这会有帮助 作为替代方案,您可以为@RahulGaur提供一个专用按钮Yes,但我有一个多行编辑文本,因此我只想选择文本的一部分…如果您只想选择第一行,您可以修改此按钮,您可以找到
return
所在的位置,但我如何选择用户长时间单击的单词?请查看此Hi,谢谢您的回答!我尝试过使用openContextMenu
,但什么也没发生。。。有了光标的起点/终点,我可以显示锚吗?谢谢,太完美了!我甚至可以删除postDelayed
,只需长按performlick
和setSelection