в датасет. Помогает только пересоздание адаптера и повторное назначение его ресайклеру. Что я делаю не так?
Что угодно. Не обновляешь сам список, не тому адаптеру нотифай шлешь. Лезь в отладчик и смотри на то что список поменялся и что getCount и OnBind отрабатывают
адаптер один, список 100% тот
у тебя dataSet не связан с адаптером же никак, ты его только в конструктор адаптера передаёшь и всё
а как обновлять ресайклер тогда, когда меняется датасет?
обновляй данные в адаптере, там же другой список лежит
Вызывается notify, потом этот адаптер тут же выкидывается в мусор и создается новый. Странно, почему notify не работает?
🤷♂️ Всегда работал
вот инициализация адаптера и ресайклера. вроде всё ок
а чё у адаптера notify вызывается до создания самого объекта адаптера? Конечно он так работать не бкдет
Вы в filter заново создаете адаптер. Предшествующий вызов notify бесполезен.
было так, не работает. Пересоздал адаптер - заработало
а метод этот где ызывается?
метод вызывается, датасет обновляется
Попробуйте DiffUtils. notify на весь датасет - плохо, вам даже warning дали на эту тему, но вы его смело задавили.
а текствотчер присваивается раньше инициализации адаптера
я знаю что так плохо, только учусь, хочу разобраться с фильтром, потом уже DiffUtils
да. это имеет значение?
Далее... Как датасет связан с адаптером? Откуда адаптер знает, что ЕГО датасет поменялся?
TextWatcher наверное ещё имплиментится на классе вашего фрагмента
а как передать изменения датасета в адаптер?
да присвоил текствотчер после инициализации адаптера, ничего не поменялось
надо AddTextChangedListener(object: TextWatcher{ }) но до него вызвать конструктор адаптера
дело в том, что вотчер срабатывает, метод вызывается, датасет меняется. а вот на экране ничего не меняется пока не пересоздать адаптер
да я понял о чем идет речь). не люблю такие конструкции)
Обсуждают сегодня