如何在EditText中获取最后一行(在新行开始之前)当前行的光标位置?

时间:2015-08-20 17:25:09

标签: android android-layout android-edittext cursor-position

例如: - “一个人的伟大不在于他获得了多少财富,而在于他的正直和积极影响他周围人的能力”

我希望在'和'之后获得光标位置。在上面的文字?

获取当前光标线我正在使用以下方法: -

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

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

       return -1;
    }

但现在我想要行尾光标位置,这样我就可以填充当前光标位置和行光标位置之间的空格。

谢谢,Nishu

1 个答案:

答案 0 :(得分:0)

如果你只想要一个方法,那么你可以随时打电话:

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;
}

这将返回最后一个换行符\n,从当前光标位置开始并循环返回,直到找到任何一个,或者到达位置0