2016-04-13 14 views
0

私は問題のように思えましたが、私の頭の中でそれを取り戻すことができます。基本的には、画像とテキストを持つカスタムアダプターを使用するリストビューをフィルタリングします。その作品は初めてです。最初にアクティビティが実行されたときにすべてのデータが取得され、検索ボックスに何かを入力するとそのアクティビティがフィルタリングされます。しかし、ここから私は今何か他のものを入力しても何も印刷せず、配列を空にしてデータを保持します。どんな提案も感謝します。アンドロイドフィルターリストビューは、最初の検索でのみ動作します

フィルタコードフラグメント

@Override 
    public Filter getFilter() { 

     Filter filter = new Filter() { 

      @SuppressWarnings("unchecked") 
      @Override 
      protected void publishResults(CharSequence constraint, FilterResults results) { 

       data= (List<Data>) results.values; 
       notifyDataSetChanged(); 
      } 

      @Override 
      protected FilterResults performFiltering(CharSequence constraint) { 

       FilterResults results = new FilterResults(); 
       ArrayList<Item> FilteredArrayNames = new ArrayList<Item>(); 

       // perform your search here using the searchConstraint String. 

       constraint = constraint.toString().toLowerCase(); 
       for (int i = 0; i < data.size(); i++) { 
        Item dataNames = data.get(i); 
        if (dataNames.title.toLowerCase().contains(constraint.toString())) { 
         FilteredArrayNames.add(dataNames); 
        } 

       } 

       results.count = FilteredArrayNames.size(); 
       results.values = FilteredArrayNames; 
       Log.e("VALUES", results.values.toString()); 

       return results; 
      } 
     }; 

     return filter; 
    } 

アクティビティコードフラグメント

text =(SearchView)findViewById(R.id.searchData); 

     text.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 
      @Override 
      public boolean onQueryTextSubmit(String query) { 
       return false; 
      } 

      @Override 
      public boolean onQueryTextChange(String newText) { 

       adapter.getFilter().filter(newText.toString()); 
       return true; 
      } 
     }); 

答えて

0

()メソッドonQueryTextChangeにfalseを返す試みます。

+0

問題がまだ残っていますが、そこから最初に空の配列をフィルタリングします –

関連する問題