Android 将if-else条件更改为数组
如何将此编码更改为数组?因为我发现这一步太长了。我是新手,你能帮我吗。多谢各位Android 将if-else条件更改为数组,android,arrays,if-statement,Android,Arrays,If Statement,如何将此编码更改为数组?因为我发现这一步太长了。我是新手,你能帮我吗。多谢各位 if(num2 == 1) { display.setImageResource(R.drawable.one); if (num1 == 1) { display2.setImageResource(R.drawable.one); } else if (num1 == 2) {
if(num2 == 1)
{
display.setImageResource(R.drawable.one);
if (num1 == 1)
{
display2.setImageResource(R.drawable.one);
}
else if (num1 == 2)
{
display2.setImageResource(R.drawable.two);
}
else if (num1 == 3)
{
display2.setImageResource(R.drawable.three);
}
else if (num1 == 4)
{
display2.setImageResource(R.drawable.four);
}
else if (num1 == 5)
{
display2.setImageResource(R.drawable.five);
}
}
如果您可以控制
R
对象,我强烈建议您首先将drawable
成员存储为一个数组。但如果你坚持
Drawable[] drawables = new Drawable[...];
drawables[1] = R.drawable.one;
drawables[2] = R.drawable.two;
...
if(num2 == 1) {
int index = (num1 >= 1 && num1 < drawables.length) ? num1 : 1;
display2.setImageResource(drawables[index]);
}
Drawable[]drawables=新的Drawable[…];
可抽出式[1]=R.drawable.one;
可抽出式[2]=R.drawable.two;
...
如果(num2==1){
int index=(num1>=1&&num1
尽管最好还是坚持使用当前代码或使用
开关
。是的,很详细,但很清楚 一个选择是使用
您可以这样定义可绘制图形:
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:maxLevel="1" android:drawable="@drawable/one />
<item android:maxLevel="2" android:drawable="@drawable/two" />
<item android:maxLevel="3" android:drawable="@drawable/three" />
<!-- ... -->
</level-list>
这段代码是有效的,为什么还要麻烦呢?它足够快,并给你正确的结果。“如果它没有损坏,就不要修复它”。更相关的一点是,您不能存储一个
R.drawable…
类型而不是num1
?@AleksG谢谢您,先生。但问题是我必须对变量num2和num1进行编码,直到数字10。那么这不是很长吗,先生?一个switch
语句会稍微干净一点,但我不确定长代码是不可避免的。谢谢先生。但这只是编码的一部分。我必须为每个变量编码到数字10。那么不会很长吗?@amln\n你是说初始化?当它们是类成员并且必须显式命名才能访问时,如何避免这种情况?
if(num2 == 1) {
display2.setImageLevel(num1);
}