Mein ViewHolder
(inneren) Klasse:Einzel OnClickListener für mehrere 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);
}
}
In onBindViewHolder()
i OnClickListener
s auf die Button
s folgt befestigen:
@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
}
});
}
Es funktioniert gut, aber mein Problem Mit diesem Ansatz erstellt ich eine neue OnClickListener
Instanz für jede ViewHolder
, die irgendwie redundant fühlt.
Ich möchte eine einzelneOnClickListener
Instanz erstellen zu verwenden, aber ich diese Art und Weise die position
und holder
params von onBindViewHolder()
nicht zugreifen können.
Ist das möglich? Wenn das so ist, wie?
Vielen Dank im Voraus.
Sie meinen Sie einen einzelnen Hörer für button1 und button2 wollen? –