如何在 EditText 中获取当前行的最后(就在新行开始之前)光标位置?
How can i get last(just before new line starts) cursor position of current line in EditText?
例如:-
“一个人的伟大不在于他获得了多少财富,而在于他的正直和他对周围人产生积极影响的能力”
我想获取上面文本中 'and' 之后的光标位置?
获取当前光标行我正在使用以下方法:-
public int getCurrentCursorLine(EditText editText)
{
int selectionStart = Selection.getSelectionStart(editText.getText());
Layout layout = editText.getLayout();
if (!(selectionStart == -1))
return layout.getLineForOffset(selectionStart);
return -1;
}
但现在我想要行尾光标位置,所以我可以填充当前光标位置和行尾光标位置之间的 space。
谢谢尼舒
如果您只是想要一个方法,您可以随时调用:
private int getLastLineBreak(EditText editText) {
int currentCursorPos = editText.getSelectionStart();
Editable s = editText.getText();
for (int i = currentCursorPos; i > 0; i--) {
if (s.chartAt(i) == '\n') {
return = i;
}
}
return 0;
}
这将 return 最后一个换行符 \n
,从当前光标位置开始并循环返回,直到找到一个或到达位置 0
。
例如:- “一个人的伟大不在于他获得了多少财富,而在于他的正直和他对周围人产生积极影响的能力”
我想获取上面文本中 'and' 之后的光标位置?
获取当前光标行我正在使用以下方法:-
public int getCurrentCursorLine(EditText editText)
{
int selectionStart = Selection.getSelectionStart(editText.getText());
Layout layout = editText.getLayout();
if (!(selectionStart == -1))
return layout.getLineForOffset(selectionStart);
return -1;
}
但现在我想要行尾光标位置,所以我可以填充当前光标位置和行尾光标位置之间的 space。
谢谢尼舒
如果您只是想要一个方法,您可以随时调用:
private int getLastLineBreak(EditText editText) {
int currentCursorPos = editText.getSelectionStart();
Editable s = editText.getText();
for (int i = currentCursorPos; i > 0; i--) {
if (s.chartAt(i) == '\n') {
return = i;
}
}
return 0;
}
这将 return 最后一个换行符 \n
,从当前光标位置开始并循环返回,直到找到一个或到达位置 0
。