Android 编辑文本行号和当前行光标位置。
现在我正在开发一个Android应用程序。我创建了一个具有功能的自定义键盘。我正在使用编辑文本来显示输入的文本。编辑文本可能有n行。现在我的问题是我的键盘上有一个向上按钮。因此,如果我单击向上按钮,那么我必须转到前几行相同的位置。但是我无法找到当前行的编辑文本行号和光标位置。请帮助我的朋友对于当前光标行,请尝试以下操作:Android 编辑文本行号和当前行光标位置。,android,Android,现在我正在开发一个Android应用程序。我创建了一个具有功能的自定义键盘。我正在使用编辑文本来显示输入的文本。编辑文本可能有n行。现在我的问题是我的键盘上有一个向上按钮。因此,如果我单击向上按钮,那么我必须转到前几行相同的位置。但是我无法找到当前行的编辑文本行号和光标位置。请帮助我的朋友对于当前光标行,请尝试以下操作: public int getCurrentCursorLine(EditText editText) { int selectionStart = Select
public int getCurrentCursorLine(EditText editText)
{
int selectionStart = Selection.getSelectionStart(editText.getText());
Layout layout = editText.getLayout();
if (selectionStart != -1) {
return layout.getLineForOffset(selectionStart);
}
return -1;
}
int cursorPosition = myEditText.getSelectionStart();
对于光标位置,使用getSelectionStart()
:
public int getCurrentCursorLine(EditText editText)
{
int selectionStart = Selection.getSelectionStart(editText.getText());
Layout layout = editText.getLayout();
if (selectionStart != -1) {
return layout.getLineForOffset(selectionStart);
}
return -1;
}
int cursorPosition = myEditText.getSelectionStart();
如果你不使用一些固定宽度的字体作为信使,这是不容易的 没有函数返回源文本的字母位置和所需的像素宽度。你得写下来 您应该测量文本,如下所示:
paint.setTypeface(Typeface.DEFAULT);// your preference here
paint.setTextSize(33); // have this the same as your text size
String text = "get text here ";
paint.getTextBounds(text, 0, text.length(), bounds);
我会用一些哈希算法来搜索正确的位置