将ScrollView中的TextView滚动到文本的特定子字符串

时间:2010-07-11 03:25:16

标签: java android textview scrollview

首先,我是一名C ++ / Qt开发人员,正在进入Android / Java开发阶段,所以请不要认为我知道任何事情。 :)所以,我有一个包含在ScrollView中的TextView的应用程序。 TextView中包含的文本是来自我的Web服务器应用程序的Web查询的结果。根据查询,文本可能很长。我想在用户输入要搜索的文本字符串的文本上实现搜索功能,如果找到文本字符串,ScrollView将滚动TextView以确保输入的子字符串可见,并且我希望文本突出显示。我想我知道如何突出显示文本子字符串,我知道如何告诉ScrollView滚动到TextView中的特定行号,但对于我的生活,我无法弄清楚如何找出哪个行号到滚动到以确保我的子字符串可见。即,我想查询文本视图,以便为我提供子字符串首次出现的行号。最后,我还希望实现一个下一个查找到下一个子串的情况。有点像Firefox中的Find功能。非常感谢任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:8)

您需要自己在文本中找到子字符串的位置,例如与String.indexOf()。知道该位置后,可以使用Layout.getLineForOffset()函数在TextView中查找正确的行:

int offset=myString.indexOf("search string");
int line = myTextView.getLayout().getLineForOffset(offset);