Java 7个复选框组合的快速编码方式?
我有7个复选框,将根据用户在复选框上选中的条件,在单击按钮时对列表进行排序。现在我想这意味着我将有128个不同的复选框组合,这意味着128个if语句将花费我一整夜的时间 有没有更好/更快的方法?也许是复选框的替代品?通过对与复选框关联的值进行平均,将根据选择的框组合对列表进行排序 示例如下:Java 7个复选框组合的快速编码方式?,java,android,if-statement,checkbox,Java,Android,If Statement,Checkbox,我有7个复选框,将根据用户在复选框上选中的条件,在单击按钮时对列表进行排序。现在我想这意味着我将有128个不同的复选框组合,这意味着128个if语句将花费我一整夜的时间 有没有更好/更快的方法?也许是复选框的替代品?通过对与复选框关联的值进行平均,将根据选择的框组合对列表进行排序 示例如下: if(ONE.isChecked()) { //sort by 1 } if(TWO.isChecked()) { //sort by 2 } if(THREE.isChecked())
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
}
首先使用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;
}
}