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

Ste*_*ard 6 java android scrollview textview

对于初学者来说,我是一个C++/Qt开发跳进的Android/Java开发,所以请不要以为我一无所知.:)所以,我有一个包含在ScrollView中的TextView的应用程序.TextView中包含的文本是来自我的Web服务器应用程序的Web查询的结果.根据查询,文本可能很长.我要实现对用户在其中输入一些文字,要搜索的字符串,如果文本串中发现,在滚动型将滚动TextView的,以确保输入的字符串是可见的文本搜索功能,我想文本高亮显示.我想我知道如何突出显示文本串,我知道如何告诉了滚动滚动到TextView的一个特定的行数,但对我的生活,我可以" 弄清楚如何找出要滚动到的行号以保证我的子串是可见的.也就是说,我要查询的文本视图给我说,子首先发生在行号.最后,我还希望实现一个下一个查找到下一个子串的情况.有点像Firefox中的Find功能.非常感谢任何帮助.提前致谢.

shm*_*elp 8

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

int offset=myString.indexOf("search string");
int line = myTextView.getLayout().getLineForOffset(offset);
Run Code Online (Sandbox Code Playgroud)