对于初学者来说,我是一名C / Qt开发人员,正在进入
Android / Java开发阶段,所以请不要认为我知道任何事情. :)所以,我有一个包含在ScrollView中的TextView的应用程序. TextView中包含的文本是来自我的Web服务器应用程序的Web查询的结果.根据查询,文本可能很长.我想在用户输入要搜索的文本字符串的文本上实现搜索功能,如果找到文本字符串,ScrollView将滚动TextView以确保输入的子字符串可见,并且我希望文本突出显示.我想我知道如何突出显示文本子字符串,我知道如何告诉ScrollView滚动到TextView中的特定行号,但对于我的生活,我无法弄清楚如何找出哪个行号到滚动到以确保我的子字符串可见.即,我想查询文本视图,以便为我提供子字符串首次出现的行号.最后,我还希望实现一个下一个查找到下一个子串的情况.有点像Firefox中的Find功能.非常感谢任何帮助.提前致谢.
解决方法
您需要自己在文本中找到子字符串的位置,例如使用
String.indexOf().一旦知道了该位置,就可以使用
Layout.getLineForOffset()函数在TextView中查找正确的行:
int offset=myString.indexOf("search string"); int line = myTextView.getLayout().getLineForOffset(offset);