我的TextView
长X行。我如何得到第3行的文字?
示例:我有TextView
这是第1行
这是第2行
这是第3行
我希望能够在这些行中的任何一行中获得String
,例如让第3行的String
返回“这就是第3行”。搜索换行符不是我需要的解决方案,因为它没有考虑文本换行。
答案 0 :(得分:40)
您可以使用textView.getLayout()。getLineStart(int line)和getLineEnd来查找文本中的字符偏移量。
然后你可以使用textView.getText()。substring(start,end) - 或者如果你使用Spannables进行格式化等,则可以使用子序列。
答案 1 :(得分:2)
以下是补充公认答案的代码:
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);
}