android switch case为什么不能用R.string
时间: 2024-12-09 11:17:18 浏览: 8
SendSMS.zip_android_sendsms(1).apk
在Android中,`switch-case`语句通常用于根据整数值或者枚举类型的值来进行条件判断。然而,`R.string`是资源ID集合,它代表了字符串资源文件(strings.xml)中的文本字符串,而`switch-case`语句期望的是可以进行比较的数值或类型,而不是字符串。
例如,如果你想要根据用户选择的选项来显示相应的字符串资源,你会这样做:
```java
int selectedOption = ...; // 获取用户的选择
switch (selectedOption) {
case R.string.option_one:
// 显示 option_one 的字符串资源
Toast.makeText(context, getResources().getString(R.string.option_one), Toast.LENGTH_SHORT).show();
break;
case R.string.option_two:
// 显示 option_two 的字符串资源
// ...
break;
}
```
在这种情况下,你需要先获取每个选项对应的资源ID,然后使用`getString()`方法来获取实际的字符串内容。直接用`R.string`作为case关键字是无法工作的,因为编译器不会知道如何匹配这与字符串相关的资源ID。
阅读全文