如何解决错误:“资源ID不能在安卓库模块的开关语句中使用”
2022-09-02 21:00:36
这里的主要问题是,语句需要常量值作为比较器,无论是文本值,还是在类级别声明的变量。自 API 14 以来,Android 值一直不是恒定的,如该错误消息中所述,因此不能用作 switch 语句的一部分。switch
1
"hello"
final
R.id
您的替代方案是使用语句,因为它们不需要常量值,如下所示:if else
if (v.getId() == R.id.something) {
// Do something
} else if (v.getId() == R.id.something_else) {
// Do something else
}
// Repeat however many times required
else {
// Default value
}
您可以为每个视图设置一个标记,并在开关案例中使用该标记。像这样:
在您看来:
...
android:tag="test" />
在代码中:
switch(v.getTag()){
case "test":
// Do Something
break;
}