【发布时间】:2017-09-21 11:15:07
【问题描述】:
我试图将光标保持在 editText 字段的末尾,这样用户就无法在中间开始输入信息。我尝试使用 onClickListener 和 onTouchListener 将选择设置为editText的长度。即使尝试了这两种方法,用户仍然可以将光标移动到文本的中间。有没有办法防止这种情况发生?
【问题讨论】:
我试图将光标保持在 editText 字段的末尾,这样用户就无法在中间开始输入信息。我尝试使用 onClickListener 和 onTouchListener 将选择设置为editText的长度。即使尝试了这两种方法,用户仍然可以将光标移动到文本的中间。有没有办法防止这种情况发生?
【问题讨论】:
您可以结合onSelectionChanged() 方法使用myEditText.setSelection(text.length()) 将光标设置在EditText 的末尾。
取自:https://stackoverflow.com/a/12982251/1269953
@Override
public void onSelectionChanged(int start, int end) {
CharSequence text = getText();
if (text != null) {
if (start != text.length() || end != text.length()) {
setSelection(text.length(), text.length());
return;
}
}
super.onSelectionChanged(start, end);
}
这会将光标恢复到文本的末尾。
【讨论】:
onSelectionChanged,这是EditText 中可用的方法,您必须创建一个扩展EditText 的类并覆盖该方法