开发者

How do I get the text at a specific line in a TextView

I have a TextView that is X lines long. H开发者_如何学运维ow do I get the text that is at, say, line 3?

Example: I have this TextView

This is line 1

And this is line 2

And this is line 3

I want to be able to get the String at any one of these lines by itself, such as getting the String at line 3 would return "And this is line 3". Searching for line breaks is not the solution I need, as it doesn't take into account text wrapping.


You can use textView.getLayout().getLineStart(int line) and getLineEnd to find the character offsets in the text.

Then you can just use textView.getText().substring(start, end) -- or subsequence if you are using Spannables for formatting/etc.


Here is some code to supplement the accepted answer:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜