安卓case R.id.ck_all报错Constant expression required
时间: 2023-07-28 18:45:14 浏览: 43
这个错误通常是因为你在 switch-case 语句中使用了一个非常量的表达式。在 switch-case 语句中,case 的表达式必须是一个常量表达式,也就是在编译时就能确定其值的表达式。
你可以尝试将表达式改为一个常量或者使用 if-else 语句替代 switch-case 语句。如果你确定表达式的值是可以在编译时确定的,可以尝试将表达式的类型转换为常量类型,例如使用 final 或者 static final 修饰。
如果你需要在 switch-case 语句中使用非常量表达式,可以考虑使用 Java 12 中新增的 switch 表达式语法,它支持使用非常量表达式作为 case 的值。
相关问题
case R.id.ck_all报错Constant expression required
这个错误通常是因为你在 switch-case 语句中使用了一个非常量的表达式。在 switch-case 语句中,case 的表达式必须是一个常量表达式,也就是在编译时就能确定其值的表达式。
你可以尝试将表达式改为一个常量或者使用 if-else 语句替代 switch-case 语句。如果你确定表达式的值是可以在编译时确定的,可以尝试将表达式的类型转换为常量类型,例如使用 final 或者 static final 修饰。
如果你需要在 switch-case 语句中使用非常量表达式,可以考虑使用 Java 12 中新增的 switch 表达式语法,它支持使用非常量表达式作为 case 的值。
androidstudio case r.id报错 Constant expression required
在Android Studio中,switch语句的case中必须是常量,而R.id.xxx为非常量,所以会报错。解决这个问题的方法有两种:
1.使用if-else语句代替switch语句,例如:
```java
if (view.getId() == R.id.button1) {
// do something
} else if (view.getId() == R.id.button2) {
// do something
} else if (view.getId() == R.id.button3) {
// do something
}
```
2.将R.id.xxx转换为常量,例如:
```java
final int BUTTON1_ID = R.id.button1;
final int BUTTON2_ID = R.id.button2;
final int BUTTON3_ID = R.id.button3;
switch (view.getId()) {
case BUTTON1_ID:
// do something
break;
case BUTTON2_ID:
// do something
break;
case BUTTON3_ID:
// do something
break;
}
```