Возможно, оператор switch будет более эффективным, потому что вы можете отправить несколько результатов в один и тот же фрагмент кода (похоже, это может быть необходимо для вашего приложения), например:
switch(value) {
case 0:
case 1:
//Do THIS
break;
case 2:
//Do THAT
break;
default:
//Doesn't match any
}
Если значение оценивается каклибо 0, либо 1, первый раздел будет выполнен, и вы должны были написать код операции только один раз.Что касается специфики (сейчас я только начинаю творчески подходить), вы можете сдвинуть три значения счетчика в одно целое число и включить результат.Если вы напишите операторы case в шестнадцатеричном формате, они будут более читабельными в отношении состояния каждого из них.
int result = 0;
result += (byte)(spinner1.getSelectedItemPosition() << 16);
result += (byte)(spinner2.getSelectedItemPosition() << 8);
result += (byte)(spinner3.getSelectedItemPosition());
switch(result) {
case 0x000000: //All spinners 0
case 0x010201: //S1 = 1, S2 = 2, S3 = 1
//Do something
break;
case 0x010101: //S1 = 1, S2 = 1, S3 = 1
//Do something else
break;
default:
//Everything else (good if most of your options go to the same Activity)
}
Надеюсь, что это поможет!
Возможный недостаток этого примера: разрешено только 256 параметровдля каждого блесны;)