在“编辑文本”中获取Android中的光标位置?


75

我正在使用自定义EditText视图。我已经覆盖了OnKeyUp事件,并且能够捕获Enter键。现在,我的要求是,当用户输入文本“嗨,你好吗?”时,然后将光标放在单词“ are”之后并按Enter,我需要获取光标位置,以便在按Enter键的那一刻可以提取光标之后的文本。请让我知道该怎么做。感谢您的时间和帮助。

Answers:


167

您可以使用getSelectionStart()和getSelectionEnd()方法获取光标位置。如果没有突出显示任何文本,则getSelectionStart()和getSelectionEnd()都将返回光标的位置。所以这样的事情应该可以解决问题:

myEditText.getSelectionStart();

要么

myEditText.getSelectionEnd();

然后,如果要选择光标之后的所有文本,则可以使用以下命令:

int cursorPosition = myEditText.getSelectionStart();
CharSequence enteredText = myEditText.getText().toString();
CharSequence cursorToEnd = enteredText.subSequence(cursorPosition, enteredText.length());

1
对于某些人来说可能会有所帮助,getSelectionEnd和getSelection start是Selection类中的静态方法,而不是EditText本身。这是文档:developer.android.com/reference/android/text/Selection
乔·妈妈
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.