java - Android - 获取光标在当前行的位置。

标签 java android android-edittext

我有一个 EditText,我想为用户显示光标信息。 但我无法获得用户正在编辑的行上的光标位置。 例如。

`The quick b|rown fox...` - Cursor @ line 0, symbol 13
`StackOverflow rule|s!` - Cursor @ line 1, symbol 20

我怎样才能做到这一点?

请原谅我的英语。

最佳答案

您可以使用 getSelectionStart() 和 getSelectionEnd() 方法获取光标位置。如果没有突出显示文本,则 getSelectionStart() 和 getSelectionEnd() 都返回光标的位置。 例如:

myEditText.getSelectionStart();

myEditText.getSelectionEnd();

用于获取行号

用途:

public int getCurrentCursorLine(EditText editText)
{    
int selectionStart = Selection.getSelectionStart(editText.getText());
Layout layout = editText.getLayout();

if (!(selectionStart == -1)) {
    return layout.getLineForOffset(selectionStart);
}

return -1;
}

source

关于java - Android - 获取光标在当前行的位置。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20840665/

相关文章:

java - 编程到接口(interface)的目的是什么?

java - 从 JFormattedTextField 获取原始、未格式化、未屏蔽的文本

android - Flutter 飞溅闪烁问题

Android 将 EditText 设置为显示大写但保留原始用户输入值

java - 交换 ArrayDeque 中的对象 (Java)

java - 使用 ANT 脚本构建 Android 测试项目

android - 从字节数组播放视频

java.lang.IllegalStateException : Expected BEGIN_ARRAY but was BEGIN_OBJECT Retrofit

android - 在垂直方向的 LinearLayout 中将 TextView 和 EditText 左对齐

Android,EditText - 如何 "delinkify"已经链接(使用 Linkify 类)文本