Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save gzeinnumer/2f76bbc57501b63b59f958ae7bff3923 to your computer and use it in GitHub Desktop.
Save gzeinnumer/2f76bbc57501b63b59f958ae7bff3923 to your computer and use it in GitHub Desktop.
AdapterCreator<MyModel> adapter = new AdapterBuilder<MyModel>(R.layout.rv_item)
.onBind( ... )
.onFilter(new FilterCallBack<MyModel>() {
@Override
public List<MyModel> performFiltering(CharSequence constraint, List<MyModel> listFilter) {
List<MyModel> fildteredList = new ArrayList<>();
if (constraint != null || constraint.length() != 0) {
String filterPattern = constraint.toString().toLowerCase().trim();
for (MyModel item : listFilter) {
//filter by id
if (String.valueOf(item.getId()).toLowerCase().contains(filterPattern)) {
fildteredList.add(item);
}
//filter by name
if (item.getName().toLowerCase().contains(filterPattern)) {
fildteredList.add(item);
}
}
}
return fildteredList;
}
});
//use filter on TextWatcher
binding.ed.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}
@Override
public void afterTextChanged(Editable s) {
//call the filter
adapter.getFilter().filter(s);
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment