6

对于初学者,我是一名 C++/Qt 开发人员,正在进入 Android/Java 开发领域,所以请不要假设我什么都知道。:) 所以,我有一个包含在 ScrollView 中的 TextView 的应用程序。TextView 中包含的文本是来自我的 Web 服务器应用程序的 Web 查询的结果。根据查询,文本可能会很长。我想在用户输入一些文本字符串进行搜索的文本上实现搜索功能,如果找到文本字符串,则 ScrollView 将滚动 TextView 以确保输入的子字符串可见,并且我希望突出显示文本。我想我知道如何突出显示文本子字符串,我知道如何告诉 ScrollView 滚动到 TextView 中的特定行号,但对于我的生活,我可以' t 弄清楚如何找出要滚动到的行号以确保我的子字符串可见。即,我想查询文本视图以给我子字符串第一次出现的行号。最后,我还想实现一个 find next ,它会转到下一次出现的子字符串。有点像 Firefox 中的查找功能。非常感谢任何帮助。提前致谢。

4

1 回答 1

9

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

int offset=myString.indexOf("search string");
int line = myTextView.getLayout().getLineForOffset(offset);
于 2010-10-19T03:15:45.560 回答