Мой ViewHolder
(внутренний) класс:Single OnClickListener для нескольких ViewHolders
static class HostViewHolder extends RecyclerView.ViewHolder {
ImageButton button1;
ImageButton button2;
HostViewHolder(View listItemView) {
super(listItemView);
button1 = (ImageButton) listItemView.findViewById(R.id.button1);
button2 = (ImageButton) listItemView.findViewById(R.id.button2);
}
}
В onBindViewHolder()
я присоединять OnClickListener
с до Button
сек следующим образом:
@Override
public void onBindViewHolder(final HostViewHolder holder, int position) {
holder.button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int pos = holder.getAdapterPosition();
// doing something using the value of pos
}
});
holder.button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int pos = holder.getAdapterPosition();
// doing some other thing using the value of pos
}
});
}
Это работает отлично, но моя проблема с этим подходом я создаю новый экземпляр OnClickListener
для каждых ViewHolder
, который чувствует себя излишним.
Я хотел бы создать одногоOnClickListener
экземпляр для использования, но я не могу получить доступ к position
и holder
Params из onBindViewHolder()
таким образом.
Можно ли достичь? Если да, то как?
Заранее спасибо.
вы имеете в виду вы хотите одного слушателя для Button1 и button2? –