вы можете использовать
$('.buttons').on('click', 'button', function(){
// your magic goes here
});
или
$('.buttons').delegate('button', 'click', function() {
// your magic goes here
});
, эти два метода эквивалентны, но имеют другой порядок параметров.
см .: Событие делегата jQuery
Проблема, вероятно, в том, что вы перепроверяете для itemViewType с getItemViewType(i));
внутри onCreateViewHolder
. Вы не должны этого делать, потому что onCreateViewHolder
уже предоставляет вам itemViewType из его параметров. И вы должны использовать регистр переключателя вместо if ? :
, чтобы сделать ваш код более читабельным.
Итак, измените свой код на что-то вроде этого:
@Override
public HorizontalViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
int layoutId;
switch(viewType) {
case 0:
layoutId = R.layout.item_category_slider_viewed;
break;
case 1:
layoutId = R.layout.item_category_slider_added;
break;
case 2:
layoutId = R.layout.item_category_slider_browse_all;
break;
default:
layoutId = R.layout.item_category_slider_regular;
}
View cardView = LayoutInflater.from(parent.getContext()).inflate(
layoutId, parent, false);
return new HorizontalViewHolder(cardView, context);
}