编写7种复选框组合的更快捷方式?

时间:2017-04-03 21:34:21

标签: java android if-statement checkbox

我有7个复选框,将根据用户在复选框上选中的条件对按钮点击进行排序。现在我认为这意味着我将拥有128种不同的复选框组合,这意味着128条if语句将带我整晚!

有更好/更快的方法吗?也许是复选框的替代品?通过对与复选框相关联的值进行平均,将根据已选择的框的组合对列表进行排序。

以下示例:

if(ONE.isChecked())
 {
 //sort by 1
 }
 if(TWO.isChecked())
 {
 //sort by 2
 }
 if(THREE.isChecked())
 {
 //sort by 3
 }
 if(ONE.isChecked() && TWO.isChecked())
 {
 //sort by (1 + 2)/2
 }

1 个答案:

答案 0 :(得分:0)

首先使用7个复选框的数组,然后不需要重复的代码副本。

然后可以使用<<(移位)和|(或者设置一点)。

Checkbox[] checkboxes = ... // For instance { ONE, TWO, ... } 
int index = 0;

for (int i = 0; i < checkboxes.length; ++i) {
    index <<= 1;
    if (checkboxes[i].isChecked()) {
       index |= 1;
    }
}

或者

for (int i = 0; i < checkboxes.length; ++i) {
    if (checkboxes[i].isChecked()) {
       index |= 1 << i;
    }
}