RecyclerView 中的多个 onClickListener
Multiple onClickListener in a RecyclerView
我有一个包含多个项目的 RecyclerView。每个 Item 都有多个按钮来执行某些操作。
所以我已经在我的 RecyclerViewAdapter 中实现了 View.OnClickListener。
不过我好像只能在onCreateViewHolder函数中设置一个OnClickListener
有人知道在我的 RecyclerView 的每个项目中有多个按钮的解决方案吗?
您可以实现 OnClickListener 并在 onClick 函数内部实现每个操作。像这样。
static class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
Button button1;
Button button2;
Button button3;
Button button4;
public MyViewHolder(View itemView) {
super(itemView);
button1 = (Button) itemView.findViewById(R.id.button1);
button2 = (Button) itemView.findViewById(R.id.button2);
button3 = (Button) itemView.findViewById(R.id.button3);
button4 = (Button) itemView.findViewById(R.id.button4);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
button4.setOnClickListener(this);
}
@Override
public void onClick(View view) {
if (view == button1) {
// button1 action
} else if (view == button2) {
// button2 action
} else if (view == button3) {
// button3 action
} else if (view == button4) {
// button4 action
}
}
}
我有一个包含多个项目的 RecyclerView。每个 Item 都有多个按钮来执行某些操作。 所以我已经在我的 RecyclerViewAdapter 中实现了 View.OnClickListener。
不过我好像只能在onCreateViewHolder函数中设置一个OnClickListener
有人知道在我的 RecyclerView 的每个项目中有多个按钮的解决方案吗?
您可以实现 OnClickListener 并在 onClick 函数内部实现每个操作。像这样。
static class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
Button button1;
Button button2;
Button button3;
Button button4;
public MyViewHolder(View itemView) {
super(itemView);
button1 = (Button) itemView.findViewById(R.id.button1);
button2 = (Button) itemView.findViewById(R.id.button2);
button3 = (Button) itemView.findViewById(R.id.button3);
button4 = (Button) itemView.findViewById(R.id.button4);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
button4.setOnClickListener(this);
}
@Override
public void onClick(View view) {
if (view == button1) {
// button1 action
} else if (view == button2) {
// button2 action
} else if (view == button3) {
// button3 action
} else if (view == button4) {
// button4 action
}
}
}