2017-04-03 6 views
0

私は7つのチェックボックスを持っており、ユーザがチェックボックスをオンにした基準に基づいて、ボタンをクリックするとリストをソートします。今私はそれは私がチェックボックスの128の異なる組み合わせを持っていることを意味し、それは私が徹夜を取る128文を意味すると思う!チェックボックスの7つの組み合わせを迅速にコーディングする方法は?

これを行うためのより良い/より速い方法がありますか?おそらくチェックボックスの代わりに?リストは、チェックボックスに関連する値を平均化することによって選択されたボックスの組み合わせに基づいてソートされる。以下

例:

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 
} 

答えて

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; 
    } 
} 
+0

天才。ありがとうございました!! – Questionnaire

関連する問題