在Android Gradle Plugin版本8.0中,资源ID将默认为非final,即使您在代码中声明为final。因此,在switch case语句中使用资源ID可能会导致编译错误。
要解决这个问题,请使用if-else语句替换switch-case语句。以下是一个示例,使用if-else语句按资源ID的值执行不同的操作:
final int resourceId = getResources().getIdentifier("my_resource", "drawable", getPackageName());
if (resourceId == R.drawable.my_resource1) {
// do something
} else if (resourceId == R.drawable.my_resource2) {
// do something else
} else {
// handle other cases
}
请注意,尽管不建议在switch case语句中使用资源ID,但您仍然可以使用它们在其他地方,例如在findViewById()方法中。