ItemClickListener у RecyclerView c разными типами данных
Проблема следующая: имеется RecyclerView с разными Holders - в первом TextView, во втором ImageView. Реализовал по образу и подобию как здесь https://github.com/codepath/android_guides/wiki/Heterogeneous-Layouts-inside-RecyclerView
Стоит задача, мне кажется, тривиальная - по нажатию на элемент списка показать Toast, что это за элемент (какой Holder нажат), его позицию в списке и удалить данный элемент из списка. Пример из курса, на котором я учусь, сделан под один Holder. Пример содержит interface OnItemClickListener с методом OnItemClick в адаптере. Затем он передается в holder, где вызывается следующим образом
public void setListener(final ContactsAdapter.OnItemClickListener listener) {
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
listener.onItemClick();
}
});
}
Уже в Holder я могу решить две задачи - передать в методе onItemClick(Holder.class.toString(), position), тем самым решив задачу с показом позиции и типом Holdera. Но реализация же этого метода вообще вынесена в MainActivity (по словам преподавателя, так надежнее). Но так у меня получается целая цепочка - MainActivity, Fragment, Adapter, Holder. Правильно ли будет тянуть в MainActivity список объектов из Adapter List<Object> items, чтобы добавлять/удалять данные в списке?
И вообще, все примеры, которые я нахожу для добавления удаления элементов, используют один Holder, но я не понимаю, как сделать для нескольких. То, как я думаю это можно реализовать, мне кажется неправильным и сложным. И не могу найти ничего похожего в гугле (скорее всего, неправильно гуглю). Буду очень рад ссылкам на примеры itemClick с несколькими Holders или помощи как сделать обработку на нажатия по этому примеру с Гитхаба. Спасибо!