0

I'm making an app that has 39 checkboxes in it. I want it to calculate the percentage of checkboxes that are currently clicked. This is java code of the app:

public class Bifrost extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_bifrost);
    //SPREMENLJIVKE
    final CheckBox cb1 = (CheckBox) findViewById(R.id.checkBox1);
    cb1.setChecked(getFromSP("cb1"));
    cb1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        }
    });
    final CheckBox cb2 = (CheckBox) findViewById(R.id.checkBox2);
    cb2.setChecked(getFromSP("cb2"));
    cb2.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        }
    });
    final CheckBox cb3 = (CheckBox) findViewById(R.id.checkBox3);
    cb3.setChecked(getFromSP("cb3"));
    cb3.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        }
    });
    final CheckBox cb4 = (CheckBox) findViewById(R.id.checkBox4);
    cb4.setChecked(getFromSP("cb4"));
    cb4.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            saveInSp("cb4",isChecked);
        }
    });
    final CheckBox cb5 = (CheckBox) findViewById(R.id.checkBox5);
    cb5.setChecked(getFromSP("cb5"));
    cb5.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            saveInSp("cb5",isChecked);   
        }
    });
    final CheckBox cb6 = (CheckBox) findViewById(R.id.checkBox6);
    cb6.setChecked(getFromSP("cb6"));
    cb6.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            saveInSp("cb6",isChecked);   
        }
    });
    final CheckBox cb7 = (CheckBox) findViewById(R.id.checkBox7);
    cb7.setChecked(getFromSP("cb7"));
    cb7.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            saveInSp("cb7",isChecked);     
        }
    });
    final CheckBox cb8 = (CheckBox) findViewById(R.id.checkBox8);
    cb8.setChecked(getFromSP("cb8"));
    cb8.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        }
    });
    final CheckBox cb9 = (CheckBox) findViewById(R.id.checkBox9);
    cb9.setChecked(getFromSP("cb9"));
    cb9.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            saveInSp("cb9",isChecked);    
        }
    });
    final CheckBox cb10 = (CheckBox) findViewById(R.id.checkBox10);
    cb10.setChecked(getFromSP("cb10"));
    cb10.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            saveInSp("cb10",isChecked);    
        }
    });
    final CheckBox cb11 = (CheckBox) findViewById(R.id.checkBox11);
    cb11.setChecked(getFromSP("cb11"));
    cb11.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            saveInSp("cb11",isChecked);     
        }
    });
    final CheckBox cb12 = (CheckBox) findViewById(R.id.checkBox12);
    cb12.setChecked(getFromSP("cb12"));
    cb12.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            saveInSp("cb12",isChecked);
        }
    });
    final CheckBox cb13 = (CheckBox) findViewById(R.id.checkBox13);
    cb13.setChecked(getFromSP("cb13"));
    cb13.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            saveInSp("cb13",isChecked);    
        }
    });
    final CheckBox cb14 = (CheckBox) findViewById(R.id.checkBox14);
    cb14.setChecked(getFromSP("cb14"));
    cb14.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        }
    });
    final CheckBox cb15 = (CheckBox) findViewById(R.id.checkBox15);
    cb15.setChecked(getFromSP("cb15"));
    cb15.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            saveInSp("cb15",isChecked);   
        }
    });
    final CheckBox cb16 = (CheckBox) findViewById(R.id.checkBox16);
    cb16.setChecked(getFromSP("cb16"));
    cb16.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            saveInSp("cb16",isChecked);      
        }
    });
    final CheckBox cb17 = (CheckBox) findViewById(R.id.checkBox17);
    cb17.setChecked(getFromSP("cb17"));
    cb17.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            saveInSp("cb17",isChecked);   
        }
    });
    final CheckBox cb18 = (CheckBox) findViewById(R.id.checkBox18);
    cb18.setChecked(getFromSP("cb18"));
    cb18.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            saveInSp("cb18",isChecked);     
        }
    });
    final CheckBox cb19 = (CheckBox) findViewById(R.id.checkBox19);
    cb19.setChecked(getFromSP("cb19"));
    cb19.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        }
    });
    final CheckBox cb20 = (CheckBox) findViewById(R.id.checkBox20);
    cb20.setChecked(getFromSP("cb20"));
    cb20.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            saveInSp("cb20",isChecked);   
        }
    });
    final CheckBox cb21 = (CheckBox) findViewById(R.id.checkBox21);
    cb21.setChecked(getFromSP("cb21"));
    cb21.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        }
    });
    final CheckBox cb22 = (CheckBox) findViewById(R.id.checkBox22);
    cb22.setChecked(getFromSP("cb22"));
    cb22.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        }
    });
    final CheckBox cb23 = (CheckBox) findViewById(R.id.checkBox23);
    cb23.setChecked(getFromSP("cb23"));
    cb23.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        }
    });
    final CheckBox cb24 = (CheckBox) findViewById(R.id.checkBox24);
    cb24.setChecked(getFromSP("cb24"));
    cb24.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        }
    });
    final CheckBox cb25 = (CheckBox) findViewById(R.id.checkBox25);
    cb25.setChecked(getFromSP("cb25"));
    cb25.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            saveInSp("cb25",isChecked);      
        }
    });
    final CheckBox cb26 = (CheckBox) findViewById(R.id.checkBox26);
    cb26.setChecked(getFromSP("cb26"));
    cb26.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            saveInSp("cb26",isChecked);     
        }
    });
    final CheckBox cb27 = (CheckBox) findViewById(R.id.checkBox27);
    cb27.setChecked(getFromSP("cb27"));
    cb27.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            saveInSp("cb27",isChecked);     
        }
    });
    final CheckBox cb28 = (CheckBox) findViewById(R.id.checkBox28);
    cb28.setChecked(getFromSP("cb28"));
    cb28.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            saveInSp("cb28",isChecked);     
        }
    });
    final CheckBox cb29 = (CheckBox) findViewById(R.id.checkBox29);
    cb29.setChecked(getFromSP("cb29"));
    cb29.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            saveInSp("cb29",isChecked);     
        }
    });
    final CheckBox cb30 = (CheckBox) findViewById(R.id.checkBox30);
    cb30.setChecked(getFromSP("cb30"));
    cb30.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            saveInSp("cb30",isChecked);      
        }
    });
    final CheckBox cb31 = (CheckBox) findViewById(R.id.checkBox31);
    cb31.setChecked(getFromSP("cb31"));
    cb31.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            saveInSp("cb31",isChecked);     
        }
    });
    final CheckBox cb32 = (CheckBox) findViewById(R.id.checkBox32);
    cb32.setChecked(getFromSP("cb32"));
    cb32.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        }
    });
    final CheckBox cb33 = (CheckBox) findViewById(R.id.checkBox33);
    cb33.setChecked(getFromSP("cb33"));
    cb33.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            saveInSp("cb33",isChecked);      
        }
    });
    final CheckBox cb34 = (CheckBox) findViewById(R.id.checkBox34);
    cb34.setChecked(getFromSP("cb34"));
    cb34.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            saveInSp("cb34",isChecked);    
        }
    });
    final CheckBox cb35 = (CheckBox) findViewById(R.id.checkBox35);
    cb35.setChecked(getFromSP("cb35"));
    cb35.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            saveInSp("cb35",isChecked);      
        }
    });
    final CheckBox cb36 = (CheckBox) findViewById(R.id.checkBox36);
    cb36.setChecked(getFromSP("cb36"));
    cb36.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            saveInSp("cb36",isChecked);      
        }
    });
    final CheckBox cb37 = (CheckBox) findViewById(R.id.checkBox37);
    cb37.setChecked(getFromSP("cb37"));
    cb37.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            saveInSp("cb37",isChecked);      
        }
    });
    final CheckBox cb38 = (CheckBox) findViewById(R.id.checkBox38);
    cb38.setChecked(getFromSP("cb38"));
    cb38.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            saveInSp("cb38",isChecked);    
        }
    });
    final CheckBox cb39 = (CheckBox) findViewById(R.id.checkBox39);
    cb39.setChecked(getFromSP("cb39"));
    cb39.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            saveInSp("cb39",isChecked);      
        }
    });


    //IF STAVKI ZA CHECKBOXE
    cb3.setOnCheckedChangeListener(new OnCheckedChangeListener()
    {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
        {
            saveInSp("cb3",isChecked);
            if ( cb3.isChecked() )
            {
                cb4.setChecked(true);
                cb5.setChecked(true);
                cb6.setChecked(true);
                cb7.setChecked(true);
            }

        }
    });

    cb8.setOnCheckedChangeListener(new OnCheckedChangeListener()
    {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
        {
            saveInSp("cb8",isChecked);
            if ( cb8.isChecked() )
            {
                cb9.setChecked(true);
                cb10.setChecked(true);
                cb11.setChecked(true);
                cb12.setChecked(true);
            }

        }
    });

    cb14.setOnCheckedChangeListener(new OnCheckedChangeListener()
    {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
        {
            saveInSp("cb14",isChecked);
            if ( cb14.isChecked() )
            {
                cb15.setChecked(true);
                cb16.setChecked(true);
                cb17.setChecked(true);
                cb18.setChecked(true);
            }

        }
    });

    cb21.setOnCheckedChangeListener(new OnCheckedChangeListener()
    {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
        {
            saveInSp("cb21",isChecked);
            if ( cb21.isChecked() )
            {
                cb25.setChecked(true);
            }

        }
    });

    cb24.setOnCheckedChangeListener(new OnCheckedChangeListener()
    {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
        {
            saveInSp("cb24",isChecked);
            if ( cb24.isChecked() )
            {
                cb28.setChecked(true);
            }

        }
    });

    cb23.setOnCheckedChangeListener(new OnCheckedChangeListener()
    {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
        {
            saveInSp("cb23",isChecked);
            if ( cb23.isChecked() )
            {
                cb24.setChecked(true);
                cb29.setChecked(true);
                cb30.setChecked(true);
                cb31.setChecked(true);
            }

        }
    });

    cb32.setOnCheckedChangeListener(new OnCheckedChangeListener()
    {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
        {
            saveInSp("cb32",isChecked);
            if ( cb32.isChecked() )
            {
                cb33.setChecked(true);
                cb34.setChecked(true);
                cb35.setChecked(true);
                cb36.setChecked(true);
            }

        }
    });

    cb2.setOnCheckedChangeListener(new OnCheckedChangeListener()
    {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
        {
            saveInSp("cb2",isChecked);
            if ( cb2.isChecked() )
            {
                cb3.setChecked(true);
                cb8.setChecked(true);
                cb13.setChecked(true);
                cb14.setChecked(true);
            }

        }
    });

    cb19.setOnCheckedChangeListener(new OnCheckedChangeListener()
    {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
        {
            saveInSp("cb19",isChecked);
            if ( cb19.isChecked() )
            {
                cb20.setChecked(true);
                cb21.setChecked(true);
                cb26.setChecked(true);
                cb27.setChecked(true);
            }

        }
    });

    cb22.setOnCheckedChangeListener(new OnCheckedChangeListener()
    {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
        {
            saveInSp("cb22",isChecked);
            if ( cb22.isChecked() )
            {
                cb23.setChecked(true);
                cb32.setChecked(true);
                cb37.setChecked(true);
                cb38.setChecked(true);
            }

        }
    });

    cb1.setOnCheckedChangeListener(new OnCheckedChangeListener()
    {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
        {
            saveInSp("cb1",isChecked);
            if ( cb1.isChecked() )
            {
                cb2.setChecked(true);
                cb19.setChecked(true);
                cb22.setChecked(true);
                cb39.setChecked(true);
            }

        }
    });
    }
}


//SP METODE ETC.
private boolean getFromSP(String key){
    SharedPreferences preferences = getApplicationContext().getSharedPreferences("GW2Legendary", android.content.Context.MODE_PRIVATE);
    return preferences.getBoolean(key, false);
    }
    private void saveInSp(String key,boolean value){
    SharedPreferences preferences = getApplicationContext().getSharedPreferences("GW2Legendary", android.content.Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = preferences.edit();
    editor.putBoolean(key, value);
    editor.commit();
    }

//BUTTON UNCHECK EVERYTHING   
    public void onClick (View v){

        CheckBox cb1 = (CheckBox) findViewById(R.id.checkBox1);
        CheckBox cb2 = (CheckBox) findViewById(R.id.checkBox2);
        CheckBox cb3 = (CheckBox) findViewById(R.id.checkBox3);
        CheckBox cb4 = (CheckBox) findViewById(R.id.checkBox4);
        CheckBox cb5 = (CheckBox) findViewById(R.id.checkBox5);
        CheckBox cb6 = (CheckBox) findViewById(R.id.checkBox6);
        CheckBox cb7 = (CheckBox) findViewById(R.id.checkBox7);
        CheckBox cb8 = (CheckBox) findViewById(R.id.checkBox8);
        CheckBox cb9 = (CheckBox) findViewById(R.id.checkBox9);
        CheckBox cb10 = (CheckBox) findViewById(R.id.checkBox10);
        CheckBox cb11 = (CheckBox) findViewById(R.id.checkBox11);
        CheckBox cb12 = (CheckBox) findViewById(R.id.checkBox12);
        CheckBox cb13 = (CheckBox) findViewById(R.id.checkBox13);
        CheckBox cb14 = (CheckBox) findViewById(R.id.checkBox14);
        CheckBox cb15 = (CheckBox) findViewById(R.id.checkBox15);
        CheckBox cb16 = (CheckBox) findViewById(R.id.checkBox16);
        CheckBox cb17 = (CheckBox) findViewById(R.id.checkBox17);
        CheckBox cb18 = (CheckBox) findViewById(R.id.checkBox18);
        CheckBox cb19 = (CheckBox) findViewById(R.id.checkBox19);
        CheckBox cb20 = (CheckBox) findViewById(R.id.checkBox20);
        CheckBox cb21 = (CheckBox) findViewById(R.id.checkBox21);
        CheckBox cb22 = (CheckBox) findViewById(R.id.checkBox22);
        CheckBox cb23 = (CheckBox) findViewById(R.id.checkBox23);
        CheckBox cb24 = (CheckBox) findViewById(R.id.checkBox24);
        CheckBox cb25 = (CheckBox) findViewById(R.id.checkBox25);
        CheckBox cb26 = (CheckBox) findViewById(R.id.checkBox26);
        CheckBox cb27 = (CheckBox) findViewById(R.id.checkBox27);
        CheckBox cb28 = (CheckBox) findViewById(R.id.checkBox28);
        CheckBox cb29 = (CheckBox) findViewById(R.id.checkBox29);
        CheckBox cb30 = (CheckBox) findViewById(R.id.checkBox30);
        CheckBox cb31 = (CheckBox) findViewById(R.id.checkBox31);
        CheckBox cb32 = (CheckBox) findViewById(R.id.checkBox32);
        CheckBox cb33 = (CheckBox) findViewById(R.id.checkBox33);
        CheckBox cb34 = (CheckBox) findViewById(R.id.checkBox34);
        CheckBox cb35 = (CheckBox) findViewById(R.id.checkBox35);
        CheckBox cb36 = (CheckBox) findViewById(R.id.checkBox36);
        CheckBox cb37 = (CheckBox) findViewById(R.id.checkBox37);
        CheckBox cb38 = (CheckBox) findViewById(R.id.checkBox38);
        CheckBox cb39 = (CheckBox) findViewById(R.id.checkBox39);

        switch (v.getId()) {
        case R.id.button1:
            cb1.setChecked(false);
            cb2.setChecked(false);
            cb3.setChecked(false);
            cb4.setChecked(false);
            cb5.setChecked(false);
            cb6.setChecked(false);
            cb7.setChecked(false);
            cb8.setChecked(false);
            cb9.setChecked(false);
            cb10.setChecked(false);
            cb11.setChecked(false);
            cb12.setChecked(false);
            cb13.setChecked(false);
            cb14.setChecked(false);
            cb15.setChecked(false);
            cb16.setChecked(false);
            cb17.setChecked(false);
            cb18.setChecked(false);
            cb19.setChecked(false);
            cb20.setChecked(false);
            cb21.setChecked(false);
            cb22.setChecked(false);
            cb23.setChecked(false);
            cb24.setChecked(false);
            cb25.setChecked(false);
            cb26.setChecked(false);
            cb27.setChecked(false);
            cb28.setChecked(false);
            cb29.setChecked(false);
            cb30.setChecked(false);
            cb31.setChecked(false);
            cb32.setChecked(false);
            cb33.setChecked(false);
            cb34.setChecked(false);
            cb35.setChecked(false);
            cb36.setChecked(false);
            cb37.setChecked(false);
            cb38.setChecked(false);
            cb39.setChecked(false);
        }
    }

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.bifrost, menu);
    return true;
}

}

I was thinking I could achieve this by implementing a counter so that everytime a checkbox would be checked it would do counter += 1 and everytime the checkbox was unchecked it would do counter -= 1. After that i'd just input percentage = (100 * counter) / 39. But since I'm completely new to android developing and java I have a problem with this. Where should I initialize the variable counter and where should I then insert counter+=1 etc.

I'd highly appreciate any kind of help/explanation.

Guy
  • 6,414
  • 19
  • 66
  • 136

3 Answers3

0

Add your checkboxes to a collection (or simple array). Iterate through that, checking each one to see if it's clicked. Count up those that are clicked and perform your calculation.

xen-0
  • 709
  • 4
  • 12
0

You could make int counter a global variable and then add actionlisteners to each checkbox in order to add or subtract from counter depending on if the box was checked/unchecked.

Zoop
  • 646
  • 5
  • 7
0

to spare some LOCs you could do it this way: in your class jsut create a new Method, that will check the state of each box:

public static void percentageChecked(){
Vector<CheckBox> allBoxes=new Vector<CheckBox>();
CheckBox cb1,cb2, cb3;...//declare all 39 checkboxes
int counterChecked=0;

cb1=(CheckBox)findViewById(R.id.checkBox1);
cb2=(CheckBox)findViewById(R.id.checkBox2);//initialize each checkbox from the layout
...
allBoxes.add(cb1);//add each checkbox to vector
...

//iterate through all checkboxes:

for(int i=0; i<allBoxes.size();i++)
   if(allBoxes.get(i).isChecked()){
   counterChecked++;
   }
}

float percent = (counterChecked * 100.0f) / allBoxes.size();
craftedPercent.setText(percent);
}

then for each checkbutton override the OnCheckedChangeListener:

cb3.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        percentageChecked();
        }
 });
IAM
  • 895
  • 2
  • 13
  • 30
  • The boxes count (39) should be retrieved dynamicaly for more flexibility, in my humble opinion. – OcuS Jun 12 '13 at 16:12
  • the user said he has 39 static boxes. if he needs a dynamic option, I will write one – IAM Jun 12 '13 at 16:14
  • @OcuS anyway, I've changed it to the size of vector – IAM Jun 12 '13 at 16:17
  • When starting with a large initial count, it's (in my opinion) an error to even begin with a statically based solution; there's more code to write than in a dynamic version, leading to too large a margin of error and no scalability – mah Jun 12 '13 at 16:17
  • @IAM Your method will always return 0 or 100. – Alexis C. Jun 12 '13 at 16:19
  • @ZouZou why? suppose 12 are checked: 12/39*100 is neither 0 nor 100 – IAM Jun 12 '13 at 16:21
  • @IAM In java 12/39 = 0. Generally, dividing two integers will give you the entire part. Try it. – Alexis C. Jun 12 '13 at 16:22
  • @IAM You could just cast one param to double (i.e `(double)counterChecked/(allBoxes.size())*100`). – Alexis C. Jun 12 '13 at 16:29
  • @mah then please tell us how can one get the IDs of the checkboxes that are manually named by the user in the layout dynamically? – IAM Jun 12 '13 at 16:30
  • @ZouZou I know. since it doesn't matter I've spared that line – IAM Jun 12 '13 at 16:31
  • Thank you so much for the help and sorry for a late reply. I will try this out and let you know how it went :) – Guy Jun 12 '13 at 17:13
  • @user2454356 you are welcome. you will also have to import java.util.Vector; – IAM Jun 12 '13 at 17:17
  • @IAM I would assume you had a solution for that since you've already suggested you would provide a dynamic routine if requested :) Some UIs make it possible to enumerate the layout and determine such things dynamically, and since the user tagged Android, it's worth pointing out that Android does allow you to do this... so a single call to an initializer with the root of the layout (or the root of the interesting part at least) would allow you to enumerate and look for some defined value to populate your vector. http://stackoverflow.com/questions/4872238/enumerate-iterate-all-views-in-activity – mah Jun 12 '13 at 17:39
  • When I try to write the for loop it underlines allBoxes.Size() and says "cannot convert from int to boolean". Any idea what I could do to fix it? – Guy Jun 12 '13 at 17:58
  • it has to be 'i – IAM Jun 12 '13 at 18:02
  • Ohh thank you, works now. Just one more question. How would I make it so that everytime I check any of he checkboxes the percentage would be shown in a textView? I tried "return craftedPercent.setText(percent);" but it won't work (crafterPercent is TextView2) – Guy Jun 12 '13 at 18:11
  • @user2454356 it's 'craftedPercent.setText(percentageChecked());' – IAM Jun 12 '13 at 18:18
  • Thanks A LOT for your help and patience :) The method seems to work now, no errors etc. but when I check or uncheck a checkbox nothing happens yet, I suppose I have to call the method in every Checked listener. – Guy Jun 12 '13 at 18:27
  • @user2454356 check the answer now. updated the method, and shown how to use it by the checkbox – IAM Jun 12 '13 at 18:38
  • If anyone deserves to get accepted answer it's you, thank you again a million times! – Guy Jun 12 '13 at 18:38