Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Обработчик нажатий кнопок в android приложении

Александр Фомин Знаток (407), на голосовании 1 год назад
Имеется несколько кнопок. Необходимо определить какая из кнопок была нажата. В интернете один пример на множестве сайтов и компилятор выдает одну и ту же ошибку...
В чем причина?

int translateIdToIndex(int id) {
int index = -1;
switch (id) {
case R.id .button1:
index = 1;
break;
case R.id .button2:
index = 2;
break;
case R.id .button3:
index = 3;
break;
}
return index;
}

В данном коде Android Studio выдает ошибки:
error: constant expression required
case R.id .button1:
error: constant expression required
case R.id .button2:
error: constant expression required
case R.id .button3:
Голосование за лучший ответ
Sergio 2.1 Оракул (67306) 1 год назад
Эта ошибка может возникнуть, если вы используете библиотеку проекта. В библиотечном проекте константы в классе ресурсов R объявляются как public static int, а не как public static final int. Это означает, что константы не являются финальными в библиотечном проекте, и ваш код больше не будет компилироваться. Решение этой проблемы простое: замените оператор switch на оператор if-else. Вы можете быстро преобразовать оператор switch в оператор if-else, используя следующее: В Eclipse переместите курсор на ключевое слово switch и нажмите Ctrl + 1, затем выберите "Convert ‘switch’ to ‘if-else’".
Похожие вопросы