Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private class MyFilter extends Filter {
- @Override
- protected FilterResults performFiltering(CharSequence constraint) {
- final FilterResults results = new FilterResults();
- if (constraint == null || constraint.length() == 0) {
- final ArrayList<MyObject> list;
- synchronized (adapter) {
- list = new ArrayList<>(allObjects);
- }
- results.values = list;
- results.count = list.size();
- } else {
- final String prefixString = constraint.toString().toLowerCase();
- final ArrayList<MyObject> values;
- synchronized (adapter) {
- values = new ArrayList<>(allObjects);
- }
- final int count = values.size();
- final ArrayList<MyObject> newValues = new ArrayList<>();
- for (int i = 0; i < count; i++) {
- final MyObject value = values.get(i);
- final String valueText = value.firstName.toLowerCase() + " " + value.lastName.toLowerCase();
- Log.i("search", valueText);
- if (valueText.contains(prefixString)) {
- newValues.add(value);
- Log.i("search", "in");
- }
- }
- results.values = newValues;
- results.count = newValues.size();
- }
- return results;
- }
- @Override
- protected void publishResults(CharSequence constraint, FilterResults results) {
- adapter.students = (List<MyObject>) results.values;
- if (results.count > 0) {
- adapter.notifyDataSetChanged();
- } else {
- adapter.notifyDataSetInvalidated();
- }
- }
- }
- @Override
- public Filter getFilter(){
- return new MyFilter();
- }
- searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
- @Override
- public boolean onQueryTextSubmit(String query) {
- adapter.getFilter().filter(query);
- return false;
- }
- @Override
- public boolean onQueryTextChange(String query) {
- adapter.getFilter().filter(query);
- return false;
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement