android filter listview仅适用于第一次搜索

android filter listview仅适用于第一次搜索,android,listview,filter,adapter,searchview,Android,Listview,Filter,Adapter,Searchview,我一直在试图找出问题的症结所在,但我可以想一想,基本上我是在过滤我的listview,它使用自定义适配器,其中包含图像和文本。它第一次工作,例如,当活动第一次运行时,它拥有所有数据,当我在搜索框中键入内容时,它会对其进行过滤。但是从这里开始,如果我现在输入其他内容,它不会打印任何内容,并且数组是空的,其中包含数据。如有任何建议,将不胜感激 过滤代码片段 @Override public Filter getFilter() { Filter filter = new

我一直在试图找出问题的症结所在,但我可以想一想,基本上我是在过滤我的listview,它使用自定义适配器,其中包含图像和文本。它第一次工作,例如,当活动第一次运行时,它拥有所有数据,当我在搜索框中键入内容时,它会对其进行过滤。但是从这里开始,如果我现在输入其他内容,它不会打印任何内容,并且数组是空的,其中包含数据。如有任何建议,将不胜感激

过滤代码片段

 @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;
            }
        });

尝试在onQueryTextChange()方法中返回false。

尝试在onQueryTextChange()方法中返回false。

问题仍然存在,从中筛选第一次和空数组问题仍然存在,从中筛选第一次和空数组