Как получить текст в определенной строке в TextView - PullRequest
29 голосов
/ 08 июня 2011

У меня есть TextView, это X строк. Как мне получить текст, скажем, в строке 3?

Пример: у меня есть это TextView

Это строка 1

А это строка 2

А это строка 3

Я хочу иметь возможность получить String для любой из этих строк отдельно, например, получение String в строке 3 вернет "И это строка 3". Поиск разрывов строк - это не то решение, которое мне нужно, поскольку оно не учитывает перенос текста.

Ответы [ 2 ]

41 голосов
/ 08 июня 2011

Вы можете использовать textView.getLayout (). GetLineStart (int line) и getLineEnd, чтобы найти смещения символов в тексте.

Затем вы можете просто использовать textView.getText (). Substring (start, end) - или подпоследовательность, если вы используете Spannables для форматирования / и т. д.

2 голосов
/ 21 сентября 2018

Вот код для дополнения принятого ответа:

List<CharSequence> lines = new ArrayList<>();
int count = textView.getLineCount();
for (int line = 0; line < count; line++) {
    int start = textView.getLayout().getLineStart(line);
    int end = textView.getLayout().getLineEnd(line);
    CharSequence substring = textView.getText().subSequence(start, end);
    lines.add(substring);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...