我正在使用minSdkVersion 8
开发Android并使用ListView在我的应用中显示移动联系人,但现在我还需要为列表视图添加过滤器,但我找不到任何使用{{1在SearchView
你们可以帮忙吗?这是我的代码 -
sdkVersion 8
答案 0 :(得分:1)
有一个类就是支持库:
答案 1 :(得分:0)
yourEditSearch.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
adapter.getFilter().filter(s);
}
};
class MyAdapter extends BaseAdapter implements CompoundButton.OnCheckedChangeListener, Filterable {
@Override
public Filter getFilter() {
Filter filter = new Filter() {
@Override
protected void publishResults(CharSequence constraint,
FilterResults results) {
// Now we have to inform the adapter about the new list filtered
if (results.count == 0)
notifyDataSetInvalidated();
else {
names= (ArrayList<String>) results.values;
notifyDataSetChanged();
}
}
@Override
protected FilterResults performFiltering(CharSequence constraint) {
// perform your search here using the searchConstraint String.
constraint = constraint.toString().toLowerCase();
// check with the nane in list and add it
//iterate and check with the matching string
for (int i=0;i<names.size();i++) {
String dataNames = names.get(i);
if (dataNames.toLowerCase().contains(constraint.toString())) {
FilteredArrayNames.add(entity);
}
}
results.count = FilteredArrayNames.size();
results.values = FilteredArrayNames;
return results;
}
};
return filter;
}
}