我ViewHolder
(內)類:單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
S上的方式如下:
@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
}
});
}
它的正常工作,但我的問題採用這種方法,我正在爲每個ViewHolder
創建一個新的OnClickListener
實例,這感覺有點多餘。
我想創建一個單OnClickListener
情況下使用,但我不能訪問的onBindViewHolder()
的position
和holder
PARAMS的方式。
這可能實現嗎?如果是這樣,怎麼樣?
在此先感謝。
你的意思是你想爲Button1和Button2的一個監聽器? –