OnClickListener for RecyclerView

前端 未结 6 1729
孤城傲影
孤城傲影 2020-12-10 22:57

Unlike ListView, the Android RecyclerView seems way too complicated to implement. Since there is no OnItemClickListener for RecyclerView child, I\'ve been trying to implemen

6条回答
  •  猫巷女王i
    2020-12-10 23:30

    Instead of setting onclicklistener for the entire RecyclerView set it inside the constructor of the ViewHolder class of your Adapter.

    Some sample code will be like the following class which is a inner class inside the recyclerview adapter.

         class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
    
          .....
            public ViewHolder(View itemView) {
                super(itemView);
               .......
                itemView.setOnClickListener(this);
            }
    
            @Override
            public void onClick(View v) {
    
               .......
            }
        }
    

    Inside onCreateViewHolder of your adapter , pass the inflated view to the constructor of ViewGroup something like ,

     @Override
    public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
        View v = LayoutInflater.from(viewGroup.getContext())
                .inflate(R.layout.your_layout, viewGroup, false);
        ViewHolder viewHolder = new ViewHolder(v);
        return viewHolder;
    }    
    

提交回复
热议问题