Имеется фрагмент, в котором идёт запрос в базу, затем данные передаются в RecyclerView для формирования списка. По клику на пункт списка открывается активность, там кнопка удаления. По тапу на кнопку идёт запрос в базу на удаление и активность закрывается через финиш.
В методе onResume() отлавливается пункт списка, который был удалён и через mAdapter.notifyItemRemoved(deleteItem); идёт анимированое скрытие этого пункта из списка.
Всё отлично, но в нижней части экрана появляется дубликат последнего видимого пункта списка. Поискав наткнулся на несколько примеров одного и того же решения - добавление в адаптер своего метода для обновления списка и обращения к этому методу. Один из этих примеров описан в этом ответе от pavlofff
Но почему-то у меня при обращении к методу адаптера в onResume() или onCreateView() само название метода подсвечивается красным (как будто метод отсутствует), а в самом адаптере название метода подсвечивается серым (как будто метод не используется) и естественно ничего не работает.
В данном случае метод класса RecyclerAdapterTab1 не виден компилятору, т.к. переменная объявлена с типом RecyclerView.Adapter, а у него такого метода нет.
Значит надо или сменить тип переменной
//RecyclerView.Adapter mAdapter;
RecyclerAdapterTab1 mAdapter;
или скастовать к нему при вызове метода
RecyclerView.Adapter mAdapter;
...
((RecyclerAdapterTab1)mAdapter).dataChanged(data);
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости