对于初学者,我是一名 C++/Qt 开发人员,正在跳入 Android/Java 开发领域,所以请不要假设我什么都懂。 :) 所以,我有一个应用程序,它的 TextView 包含在 ScrollView 中。 TextView 中包含的文本是来 self 的 Web 服务器应用程序的 Web 查询的结果。根据查询的不同,文本可能会很长。我想在用户输入要搜索的文本字符串的文本上实现搜索功能,如果找到文本字符串,ScrollView 将滚动 TextView 以确保输入的子字符串可见,并且我希望文本突出显示。我想我知道如何突出显示文本子字符串,我知道如何告诉 ScrollView 滚动到 TextView 中的特定行号,但对于我来说,我无法弄清楚如何找出要显示的行号滚动到以保证我的子字符串可见。即,我想查询 TextView 以提供子字符串首次出现的行号。最后,我还想实现一个查找下一个子字符串的下一个匹配项。有点像 Firefox 中的查找功能。非常感谢任何帮助。提前致谢。
最佳答案
你需要自己找到子串在文本中的位置,e.g.与 String.indexOf() .一旦知道该位置,就可以使用 Layout.getLineForOffset() 在 TextView 中查找正确的行。功能:
int offset=myString.indexOf("search string");
int line = myTextView.getLayout().getLineForOffset(offset);
关于java - 将 ScrollView 中的 TextView 滚动到特定的文本子串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3221744/