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
        }
    }
}