Skip to content Skip to sidebar Skip to footer

Android: Checking One Checkbox Checks All Checkboxes In The Same Row

My app shows a ListView with a different number of CheckBoxes for each row. The maxium number of CheckBoxes for a row is three. My app looks like this: If the left CheckBox get

Solution 1:

Create a final variable referencing you ViewHolder and use this inside you onCheckedChangeListener :

finalDataHolderfinalHolder= holder;

holder.cb1.setOnCheckedChangeListener(newCompoundButton.OnCheckedChangeListener() {
             @OverridepublicvoidonCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                 buttonView.setChecked(isChecked);
                 //Case1: Left (cb1) gets checked -> set all other right CB´s (cb2 & cb3) checkedif(isChecked){
                     finalHolder.cb2.setChecked(isChecked);  // NO MORE ERROR
                     finalHolder.cb3.setChecked(isChecked);  //NO MORE ERROR
                 }
             }
         });

holder.cb2.setOnCheckedChangeListener(newCompoundButton.OnCheckedChangeListener() {
            @OverridepublicvoidonCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                buttonView.setChecked(isChecked);
                //Case2: Middle (cb2) gets checked -> set right CB (cb3) checkedif(isChecked){
                    finalHolder.cb3.setChecked(isChecked);   // NO MORE ERROR
                }
                //Case3: Middle (cb2) gets unchecked -> set left CB (cb1) uncheckedelse {
                    finalHolder.cb1.setChecked(isChecked);   //NO MORE ERROR
                }
            }
        });

Do the same for cb3 onCheckedChangeListener as well.

Post a Comment for "Android: Checking One Checkbox Checks All Checkboxes In The Same Row"