在使用switch-case语句处理资源ID(如R.id.xxx)时,遇到了“Constant expression required”的错误。
经过查阅资料,我了解到这是因为Android Studio默认将资源ID视为非final,而switch-case需要常量表达式。
解决方案:
在项目的gradle.properties配置文件中添加代码
android.nonFinalResIds=false
在Android Studio中资源id默认是非final的,我们现在把这个默认行为置为false,就是在明确指定资源ID是final的,允许在switch-case中使用资源ID作为常量,从而解决了编译错误。