解決問題:resource IDS cannot be used in a switch statement in Android library

# 發現問題
在抽取lib的時候發現了這樣一個問題,如圖所示:

1. 很正常的onClick事件的處理,使用的swtich語句,但是卻報了resource IDS cannot be used in a switch statement in Android library這個問題,原因是...
2. android項目的library module裏不能使用資源ID作爲switch語句的case值。
3. 爲什麼呢?因爲switch裏的case值必須是常數,而在library module的R文件裏ID的值不是final類型的,但是主module的R文件裏的ID值是final類型的
4. 所以主module裏可以用資源ID作爲case值而library module卻不能。

# 解決方案
1. 用if-else替換switch
2. 快捷鍵:選中switch或者case語句,按Option+Return(Mac),Alt+Enter(Windows)
3. 選擇Replace ‘switch’ witch ‘if’即可

4. 這樣就自動替換好啦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章