是否有更好的方法来做到这一点:Android,通过字符串获取资源ID?
int drawable;
switch(mSignalStrength) {
case 0:
drawable = R.drawable.signal_0;
break;
case 1:
drawable = R.drawable.signal_1;
break;
case 2:
drawable = R.drawable.signal_2;
break;
case 3:
drawable = R.drawable.signal_3;
break;
case 4:
drawable = R.drawable.signal_4;
break;
case 5:
drawable = R.drawable.signal_5;
break;
default:
drawable = -1;
}
我想更换一些int getDrawableIdByString("signal_" + mSignalStrength)
功能switch语句。
问题在于 – warlock
使用反射:'getIdentifier()'。您可以通过传递其名称来返回资源ID。 –
@warlock我得到了相同的代码重复了6次,为不同的信号强度值。这很丑陋。 – fadedbee