2017-01-22 3 views
0

editText와 검색 버튼이 있습니다. 이제 첫 번째 결과 만 보여줍니다.scrollview에서 검색을 수행하고 다음 indexOf를 가져 오는 방법은?

하지만 검색 버튼을 다시 눌러 다음 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

할 수 있습니다 검색을 위해 시작 인덱스를 가져 indexOf의 오버로드 된 버전을 사용하고 같은 원래의 인덱스 통과 : 당신이 다음을 순환해야하는 경우 :

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

편집을 그런 다음 색인 i을 전역 변수로 만들고 초기화하십시오. -1

이후

+0

예라고 할 때 그것은 다음 처음이라는 첫 번째 위치를 반환하고 있는지 확인합니다사용

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

는, 덕분에 다음 위치를 제공합니다! 하지만 이미 알아 냈어. 문제는 단추를 다음 번 클릭 할 때이 단추를 사용하는 방법입니다. 이미 모든 클릭으로 증가한 Int를 만들려고했지만 원하는대로 작동하지 않았습니다. –

+0

@ Vojb- 내 업데이트 된 답변 확인 – akash93

+0

정말 고마워요! 완벽하게 작동했습니다! –