發(fā)現(xiàn)問題
在抽取lib的時(shí)候發(fā)現(xiàn)了這樣一個(gè)問題抄罕,如圖所示:
image.png
- 很正常的onClick事件的處理,使用的swtich語句推穷,但是卻報(bào)了resource IDS cannot be used in a switch statement in Android library這個(gè)問題绑青,原因是...
- android項(xiàng)目的library module里不能使用資源ID作為switch語句的case值。
- 為什么呢跪腹?因?yàn)閟witch里的case值必須是常數(shù),而在library module的R文件里ID的值不是final類型的飞醉,但是主module的R文件里的ID值是final類型的
- 所以主module里可以用資源ID作為case值而library module卻不能冲茸。
解決方案
- 用if-else替換switch
- 快捷鍵:選中switch或者case語句,按Option+Return(Mac),Alt+Enter(Windows)
-
選擇Replace ‘switch’ witch ‘if’即可
image.png -
這樣就自動(dòng)替換好啦缅帘。
image.png