標籤雲

搜尋此網誌

2013/09/03

轉換 library project 裡面的 switch 為 if else

剛剛專案碰到的問題..

把專案轉成 library project 的時候
如果專案裡面有像這樣的 code
switch(id){
    case R.id.xxxx:
        action1();
        break;
    case R.id.yyyy:
        action2();
        break;
    default:
        defaultAction();
        break;
}
在 ADT 14 之後會出現錯誤
必須改成 if..else
像這樣
if(id == R.id.xxxx){
    action1();
}else if(id == R.id.yyyy){
    action2();
}else{
    defaultAction();
}
原因是編譯效能考量
(不改的話它也不讓你編譯就是了...)

不過工具會幫你修改
只要選取 switch 按 Ctrl-1 (Windows)(Mac 是 Cmd-1)
Convert 'switch' to 'if-else' 點兩下
code 就自動改好了

詳細可以看相關資料連結的說明

相關資料:
Android Tools Project Site: Non-constant Fields in Case Labels

沒有留言: