use*_*103 10 java android switch-statement android-resources
这里是Android的新手,所以如果这是一个简单的问题我会道歉.
我试图在我的XML中使用基于字符串资源的开关.它看起来像这样:
switch (myStringVariable) {
case getResources().getString(R.string.first_string):
break;
case getResources().getString(R.string.second_string):
break;
case getResources().getString(R.string.third_string):
break;
default:
break;
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不起作用.我得到的错误是"需要常量表达式".
是否有一种半优雅的方式来解决这个问题,而不必像创建3个String对象那样做并为每个对象分配字符串资源?我觉得我错过了一些明显的东西,所以任何帮助都会很棒!
谢谢 :)
好吧,首先,Android所基于的Java版本不支持String switch语句,所以通常你必须使用if/else块.
编辑:如果您使用JDK 1.7及更高版本,则支持字符串开关语句
我不知道你的使用情况是什么,但如果你有资源ID myStringVariable,这是一个int,你可以做在一个开关:
switch (myStringResId) {
case R.string.first_string:
break;
case R.string.second_string:
break;
case R.string.third_string:
break;
default:
break;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7625 次 |
| 最近记录: |