Duplication in Checkbox selection in RecyclerView

后端 未结 4 1898
无人共我
无人共我 2020-12-11 23:38

Below is the my code.

holder.followDiseaseCheckBox.setOnClickListener(new View.OnClickListener() {
        @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
          


        
4条回答
  •  星月不相逢
    2020-12-12 00:25

    public class CardViewDataAdapter extends RecyclerView.Adapter {
        private List stList;
        public CardViewDataAdapter(List students) {
            this.stList = students;
        }
    
    @Override
    public CardViewDataAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
      // create a new view
        View itemLayoutView = LayoutInflater.from(parent.getContext()).inflate(
        R.layout.cardview_row, null);
    
      // create ViewHolder
    
      ViewHolder viewHolder = new ViewHolder(itemLayoutView);
    
      return viewHolder;
     }
    
     @Override
     public void onBindViewHolder(ViewHolder viewHolder, int position) {
    
      final int pos = position;
    
      viewHolder.tvName.setText(stList.get(position).getName());
    
      viewHolder.tvEmailId.setText(stList.get(position).getEmailId());
    
      viewHolder.chkSelected.setChecked(stList.get(position).isSelected());
    
      viewHolder.chkSelected.setTag(stList.get(position));
    
    
      viewHolder.chkSelected.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
        CheckBox cb = (CheckBox) v;
        Student contact = (Student) cb.getTag();
    
        contact.setSelected(cb.isChecked());
        stList.get(pos).setSelected(cb.isChecked());
    
        Toast.makeText(
          v.getContext(),
          "Clicked on Checkbox: " + cb.getText() + " is "
            + cb.isChecked(), Toast.LENGTH_LONG).show();
       }
      });
    
     }
    
     // Return the size arraylist
     @Override
     public int getItemCount() {
      return stList.size();
     }
    
     public static class ViewHolder extends RecyclerView.ViewHolder {
    
      public TextView tvName;
      public TextView tvEmailId;
    
      public CheckBox chkSelected;
    
      public Student singlestudent;
    
      public ViewHolder(View itemLayoutView) {
       super(itemLayoutView);
    
       tvName = (TextView) itemLayoutView.findViewById(R.id.tvName);
    
       tvEmailId = (TextView) itemLayoutView.findViewById(R.id.tvEmailId);
       chkSelected = (CheckBox) itemLayoutView.findViewById(R.id.chkSelected);
    
      }
    
     }
    
     // method to access in activity after updating selection
     public List getStudentist() {
      return stList;
     }
    }
    

    For more understanding about the selection of checkbox, follow this link

提交回复
热议问题