Выражение-переключатель должно иметь тип
char, byte, short или int. Все дела
ярлыки должны быть постоянными
выражения - выражения должны
содержать только литералы или именованные
константы, инициализированные с константой
выражения - и должны быть назначены
тип выражения switch.
Это то, что есть! Java не позволяет вам передавать String для проверки состояния коммутатора, фактически новое предложение, возможно, было отклонено. (где-то читайте в блоге, извините, у меня нет источника)
Но это не значит, что вы не можете сделать это другим способом.
Альтернативы
1) Использовать позицию элемента списка, а не строку.
2) Использование Enum
3) Сохраните его в Map<String,Integer>
(или даже в массиве) и используйте значение в регистре SWitch
РЕДАКТИРОВАТЬ: Лично я бы добавил 4 константы и сделать это так
final int MENU_COMPOSE = 0; //should be equal to the index in your array.
final int MENU_INBOX = 1;
final int MENU_DRAFTS = 2;
final int MENU_SENT = 3;
switch (position) {
case MENU_COMPOSE: //Compose, add comments never the less.
break;
case MENU_INBOX: //Inbox
break;
case MENU_DRAFTS: //Drafts
break;
case MENU_SENT: //Sent
break;
default:
break;
}