Можно ли в RecyclerView прослушать нажатия и как это сделать , если образец layout повторяется несколько раз.
Вы можете создать свой интерфейс например:
public interface OnItemClickListener {
void onItemClick(ContentItem item);
}
Конструктор получит объект, который реализует этот интерфейс, вместе с элементами, которые будут отображаться:
private final List<ContentItem> items;
private final OnItemClickListener listener;
public ContentAdapter(List<ContentItem> items, OnItemClickListener listener) {
this.items = items;
this.listener = listener;
}
В качестве альтернативы вы можете создать setOnItemClickListener метод и назначить его таким образом. Теперь, в получите конструктора в пользовательском методе:onBindViewHolder
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.bind(items.get(position), listener);
}
Вот так выглядит bind метод
public void bind(final ContentItem item, final OnItemClickListener listener) {
...
itemView.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
listener.onItemClick(item);
}
});
}
Используйте его всякий раз, когда вам это нужно, создав новый адаптер и прослушиватель, который будет реализовывать поведение при нажатии на элемент. Простой пример:
recycler.setAdapter(new ContentAdapter(items, new ContentAdapter.OnItemClickListener() {
@Override public void onItemClick(ContentItem item) {
Toast.makeText(getContext(), "Item Clicked", Toast.LENGTH_LONG).show();
}
}));
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Можно ли на Huawei и Xioami программно добавить приложение в избранное?
Want to improve this question? Update the question so it focuses on one problem only by editing this post
Want to improve this question? Update the question so it's on-topic for Stack Overflow на русском
не подскажите как в функции getWebResourceResponse получить доступ к POST Данным?