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

对于初学者来说,我是一名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);

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...