如何在TextView中的特定行获取文本

时间:2011-06-07 23:07:08

标签: android textview

我的TextView长X行。我如何得到第3行的文字?

示例:我有TextView

这是第1行

这是第2行

这是第3行

我希望能够在这些行中的任何一行中获得String,例如让第3行的String返回“这就是第3行”。搜索换行符不是我需要的解决方案,因为它没有考虑文本换行。

2 个答案:

答案 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);
}