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