如何在滚动视图中进行搜索并能够获取下一个 indexOf?

How to make a search in scrollview and be able to get next indexOf?

我有一个 editText 和一个搜索按钮,现在它只显示第一个结果。

但我希望能够再次按下搜索按钮,然后显示下一个 indexOf。我该怎么做?

public void searchMethod(final String search) {
        int i = mTextCurrentArticle.toLowerCase().indexOf(search.toLowerCase().trim());
        if (i == -1) {
            mEditTextSearch.setTextColor(Color.RED);
            //  String cap = search.substring(0, 1).toUpperCase() + search.substring(1);
            //i = mTextCurrentArticle.indexOf(cap);
        } else {
            mEditTextSearch.setTextColor(Color.BLACK);
        }
      //  int line = mTextViewCurrentArticle.getLayout().getLineForOffset(i);
        Layout layout = mTextViewCurrentArticle.getLayout();
        mScrollView.scrollTo(0, layout.getLineTop(layout.getLineForOffset(i)));

您可以使用 indexOf 的重载版本,它采用搜索的起始索引并像这样传递原始索引:

int i = mTextCurrentArticle.toLowerCase().indexOf(search.toLowerCase().trim());
int nextPosition = mTextCurrentArticle.toLowerCase().indexOf(search.toLowerCase().trim(), i+1);

编辑: 如果您需要循环遍历后续位置,则只需将索引 i 设为全局变量并将其初始化为 -1

然后在你的 searchMethod 中使用

i = mTextCurrentArticle.toLowerCase().indexOf(search.toLowerCase().trim(), i+1);

这将确保它在第一次调用时returns第一个位置,然后在随后调用时给出下一个位置