2016-10-30 14 views
0

大量のデータを含むテキストビュー内の単語を検索したかったのですが、それを達成するために、アクションバーに検索オプションを追加し、setOnQueryTextListenerを使って試しました。しかし、私はテキストビューでtv.getFilters()。filter()メソッドを使用することができません。この方法は、アレイアダプタで正常に動作します。 テキストの検索方法をお教えください検索ビューでテキストを検索する

ありがとうございます!

答えて

0

最初にonQueryTextChange()でこのメソッドを呼び出します。下記参照。 filterListByPattern()において

@Override 
     public boolean onQueryTextChange(String s) { 
      filterListByPattern(s, List);// List is TextView Large amount of data convert each word as a list item. 
      return true; 
     } 

private void filterListByPattern(String s, ArrayList<String> mainList) 
{ 
    for(int i = 0; i < mainList.size(); i++) 
    { 
     String word = mainList.get(i); 
     if(word.toLowerCase().toString().contains(s.toLowerCase().toString()))// if search word found in list 
     { 
      Spannable wordtoSpan = new SpannableString(word);   
      wordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE));// change the color of the word in to blue. 
      mainList.set(i, wordtoSpan.toString())//color changed word update to the List. 
      break; 
     } 
    } 

    for(int i = 0; i < mainList.size(); i++) 
    { 
     String word = mainList.get(i); 
     tv.append(word);//append each word in List. search word will be blue color 
    } 


} 
関連する問題