2016-05-06 7 views
1

私のアプリケーションにフィルタクラスを実装して、フィルタリングをListViewにしました。今度はListViewの代わりにListViewのすべての項目を入力し、フィルターが一致しない場合は、ListViewの項目をブランクにして追加します。
どうすればいいですか?助けが必要です。フィルタに一致しないアイテムを追加するにはどうすればよいですか?

public void filter(String charText) { 
     charText = charText.toLowerCase(Locale.getDefault()); 
     expressionlist.clear(); 
     if (charText.length() == 0) { 
      expressionlist.addAll(arraylist); 
     } else { 
      for (Expression wp : arraylist) { 
       if (wp.getWord().toLowerCase(Locale.getDefault()) 
         .contains(charText)) { 
        expressionlist.add(wp); 
       } 
      } 
     } 
     notifyDataSetChanged(); 
    } 
} 

答えて

1

検索キーワードでフィルタした後。結果配列のサイズを確認することができます。
それが空の場合、あなたはその後、notifyDataSetChanged

public void filter(String charText) { 
     charText = charText.toLowerCase(Locale.getDefault()); 
     expressionlist.clear(); 
     if (charText.length() == 0) { 
      ... 
     } else { 
      ... 
     } 

     if(expressionlist.size() == 0){ 
      // add all items of expressionlist 
     } 
     notifyDataSetChanged(); 
    } 
} 
0
public void filterData(String strSearch) { 

     strSearch = strSearch.toLowerCase(); 
     arrList.clear(); 

     if (strSearch.isEmpty()) { 
      arrList.add()//add your main arrmainlist 
     } else { 

      String usernameArr[] = strSearch.split(" "); 

      for (String query : usernameArr) { 
       for (upto your arrlist size) { 
        like if (data.getQues().toLowerCase().contains(keyWord.toLowerCase()) 
         || data.getAns().toLowerCase().contains(keyWord.toLowerCase())) { 
        if (!tempList.contains(data)) { 
         tempList.add(data); 
        } 
        if (newList.size() > 0) { 
         check your temp list already in your arraylist/hashmap. 

を表示するデータは次にメインのArrayList/HashMapのに }}

  } 

     } 
     notifyDataSetChanged(); 
を追加
関連する問題