Gp *_*ter 8 java android switch-statement
我将其他人创建的Android项目作为库模块导入到我的项目中.即使在清理和重建项目后,我也会收到以下错误:
需要的常量表达式资源ID不能在Android库的switch语句中使用
我该如何解决这个错误?
这里你的主要问题是switch语句需要常量值作为比较器,无论是文字值1,"hello"还是final在类级别声明的变量.的Android R.id值已不是自API 14是恒定的,如该错误消息表示,所以因此不能用作开关语句的一部分.
您可以选择使用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
}
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以为每个视图设置标签,并在开关盒中使用该标签。像这样:
您认为:
...
android:tag="test" />
Run Code Online (Sandbox Code Playgroud)
在代码中:
switch(v.getTag()){
case "test":
// Do Something
break;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3984 次 |
| 最近记录: |