2017-01-22 4 views
0

私はeditTextと検索ボタンを持っていますが、今は最初の結果を示しています。scrollviewで検索を行い、次のindexOfを取得する方法は?

しかし、もう一度検索ボタンを押してから次のindexOfを表示したいと思っています。これどうやってするの ?あなたがそれに続くを通じてサイクルに必要がある場合は :

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

EDIT:あなたが検索のための開始インデックスを取る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))); 

答えて

0

インデックスをiグローバル変数にして、それを初期化して-1

searchMethod使用

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

これは、これが初めてと呼ばれる最初の位置を返し、その後

+0

うん呼び出されたときに次の位置を与えることを感謝を保証します!しかし、私はすでにそれを理解しました。問題は、ボタンを次にクリックして使用する方法です。私はすでに、クリックごとに増加するIntを作成しようとしましたが、望みどおりに機能しませんでした。 –

+0

@ Vojb-私の更新された回答を確認してください – akash93

+0

ありがとうございました!それは完璧に働いた! –

関連する問題