Ошибка SearchView, когда я удаляю свой текст на EditText - PullRequest
0 голосов
/ 05 января 2019

Я пытаюсь реализовать searchview на моем RecyclerView, используя EditText. Все идет хорошо, пока я не попытаюсь удалить весь мой текст на EditText. Мое приложение перестает работать.

Я пытался добавить условие для того, что приложение должно делать, когда мой текст равен нулю:

FragmentHome.java

edSearch.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) {
                adapter.getFilter().filter(s);

            }
        });

Adapter.Java

public Filter getFilter() {
        return new Filter() {
            @Override
            protected FilterResults performFiltering(CharSequence charSequence) {
                String charString = charSequence.toString();
                if (charString.isEmpty()||charString.equals("")||charString.equals(" ")) {
                    listpensiunFiltered = listpensiun;
                } else {
                    List<PensiunModel> filteredList = new ArrayList<>();
                    for (PensiunModel row : listpensiun ) {

                        // name match condition. this might differ depending on your requirement
                        // here we are looking for name or phone number match
                        if (row.getNamaKtp().toLowerCase().contains(charString.toLowerCase()) || row.getNopen2().contains(charSequence)) {
                            filteredList.add(row);
                        }
                    }

                    listpensiunFiltered = filteredList;
                }

                FilterResults filterResults = new FilterResults();
                filterResults.values = listpensiunFiltered;
                return filterResults;
            }

            @Override
            protected void publishResults(CharSequence charSequence, FilterResults filterResults) {
                listpensiunFiltered = (ArrayList<PensiunModel>) filterResults.values;
                notifyDataSetChanged();
            }
        };
    }
...