18

How can I select all checkboxes in recyclerView?

I try to do it like this:

in Adapter:

   public void selectAll(){
        Log.e("onClickSelectAll","yes");
        isSelectedAll=true;
        notifyDataSetChanged();
    }


@Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        PersonDTO item = dataSet.get(position);
        holder.tvName.setText(item.getName());
        if (!isSelectedAll) holder.cbSelect.setSelected(false);
        else holder.cbSelect.setSelected(true);}

In layout Activity I have a button with onClickListener:

 private void onClickSelectAll(View view) {

        getSelectPersonsAdapter().selectAll();
    }
W4R10CK
  • 5,502
  • 2
  • 19
  • 30
no news
  • 1,060
  • 3
  • 14
  • 24

3 Answers3

21

You made a simple mistake here

  if (!isSelectedAll) holder.select_item.setChecked(false);
    else holder.select_item.setChecked(true);

change setSelected into setChecked thats it

AMAN SINGH
  • 3,491
  • 6
  • 28
  • 44
8

for both Select All and Unselect All

activty

 checkall.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(checkall.isChecked()){
                categoryAdapter.selectAll();
            }
            else {
                categoryAdapter.unselectall();
            }


        }
    });

in adapter

  public void selectAll(){
        isSelectedAll=true;
        notifyDataSetChanged();
    }
    public void unselectall(){
        isSelectedAll=false;
        notifyDataSetChanged();
    }



    @Override
    public void onBindViewHolder(@NonNull final MyviewHolder holder, int position) {
        final CategoryListItems list = categoryListItems.get(position);
        holder.text.setText(list.getName());
        if (!isSelectedAll){
            holder.checkbox.setChecked(false);
        }
        else  holder.checkbox.setChecked(true);
Manju S B
  • 101
  • 1
  • 4
0

Select all Checkbox in recycler view with data binding

In adapter assign globally boolean parameter

public boolean isAllChecked = false;

Create select all method

public void setAllChecked(boolean isAllChecked) {
    this.isAllChecked = isAllChecked;
    notifyDataSetChanged();
}

In onBind view to write here

if (!isAllChecked) holder.ulbCheckboxBinding.chkBoxUlbName.setChecked(false);
    else holder.ulbCheckboxBinding.chkBoxUlbName.setChecked(true);

Go to your activity and used onclick listener

binding.checkSelectAll.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            adapter.setAllChecked(binding.checkSelectAll.isChecked());
            adapter.notifyDataSetChanged();
        }
    });

thank you #android