Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android RecyclerView中的多个onClickListener_Android_Onclicklistener_Android Recyclerview - Fatal编程技术网

Android RecyclerView中的多个onClickListener

Android RecyclerView中的多个onClickListener,android,onclicklistener,android-recyclerview,Android,Onclicklistener,Android Recyclerview,我有一个包含多个项目的RecyclerView。每个项目都有多个按钮来执行某些操作。 因此,我将View.OnClickListener实现到我的RecycleServiceAdapter 但似乎我只能在onCreateViewHolder函数中设置一个OnClickListener 有人知道有什么解决方案可以在我的RecyclerView的每个项目中都有多个按钮吗?您可以实现OnClickListener,并在onClick函数中实现每个操作。像这样 static class MyViewHo

我有一个包含多个项目的RecyclerView。每个项目都有多个按钮来执行某些操作。 因此,我将View.OnClickListener实现到我的RecycleServiceAdapter

但似乎我只能在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
        }
    }
}

让您的ViewHolder实现OnClickListener,然后您可以设置多个setOnClickListener调用我可以在哪里设置setOnClickListener?在我的ViewHolder类中?是的,只需调用v0.setOnClickListener(this);v1.setOnClickListener(此);ETC感谢你的回答,但我已经尝试过这种方法,我找到了如何获得我的持有者的位置,你可以创建自己的onclicklistener并在constructor@SocialSupaCrew它正在工作,但您正在创建四个
OnClickListener
s,为什么?只需让MyViewHolder实现OnClickListener并创建一个公共侦听器