@Neonoviiwolf
Flutter developer

Почему не работает Log.i в этом коде?

Доброго
вот код, разбираюсь со своим адаптером, наткнулся на непонятный момент
private ArrayList<String> allMyForArrayAdapter = new ArrayList<>(); //он не пустой, там 26 значений
    @Override
    public Filter getFilter() {
        Log.i("Test", "getFilter");
        Log.i("Test", "aaaaaaaa" + allMyForArrayAdapter.size()); //тут нормально
        Filter filter = new Filter() {
            @Override
            protected FilterResults performFiltering(CharSequence charSequence) {
//                Log.i("Test", "performFiltering " + charSequence);
                charSequence = charSequence.toString().toLowerCase();
                FilterResults filterResults = new FilterResults();
                if (charSequence.toString().length() > 0) {

                    Log.i("Test", charSequence.toString().length() + "");
                    Log.i("Test", "а это не работает" + allMyForArrayAdapter.size());//а это не работает


                    ArrayList<String> strings = new ArrayList<>();
                    for (int i = 0; allMyForArrayAdapter.size() > i; ++i) {
                        String m = allMyForArrayAdapter.get(i).toLowerCase();
                        Log.i("Test", allMyForArrayAdapter.get(i).toLowerCase());
                        if (m.contains(charSequence)) {
                            strings.add(m);
                        }
                    }
                    filterResults.values = strings;
                    filterResults.count = strings.size();
                } else {
                    synchronized (this) {
                        filterResults.values = list;
                        filterResults.count = list.size();
                    }
                }
                return filterResults;
            }

            @Override
            protected void publishResults(CharSequence charSequence, FilterResults filterResults) {
//                Log.i("Test", "publishResults " + charSequence);
                allMyForArrayAdapter = (ArrayList<String>) filterResults.values;
                notifyDataSetChanged();
                clear();
                for (int i = 0; list.size() > i; ++i)
                    add(list.get(i));
                notifyDataSetInvalidated();
            }
        };
        return filter;
    }
  • Вопрос задан
  • 236 просмотров
Пригласить эксперта
Ответы на вопрос 1
@aol-nnov
как не работает-то? не выполняется? очевидно charSequence.toString().length() > 0 ложно.

если падает, то стектрейс не помешает в вопрос добавить.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы