发现问题
在抽取lib的时候发现了这样一个问题,如图所示:
- 很正常的onClick事件的处理,使用的swtich语句,但是却报了resource IDS cannot be used in a switch statement in Android library这个问题,原因是...
- android项目的library module里不能使用资源ID作为switch语句的case值。
- 为什么呢?因为switch里的case值必须是常数,而在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’即可
-
这样就自动替换好啦。