ADT 14.0 对R.java文件的改动 对switch语句的影响

 

在原来的ADT版本里,在gen目录下的R.java文件中,对于常量的声明是:

public static final int main = 0x7f030004;
在ADT 14.0里,却是这样声明的:
public static int main=0x7f030004;

这样会造成以下语句不会编译通过:

int id = view.getId();
switch (id) {
    case R.id.button1:
        action1();
        break;
    case R.id.button2:
        action2();
        break;
    case R.id.button3:
        action3();
        break;
}

解决方法是将switch语句改为if-else语句:

int id = view.getId();
if (id == R.id.button1) {
    action1();
} else if (id == R.id.button2) {
    action2();
} else if (id == R.id.button3) {
    action3();
}

Eclipse下switch转if-else的快捷键:Ctrl-1

 

官网原文:

Non-constant Fields in Case Labels

原文地址:https://www.cnblogs.com/willyan/p/2355937.html