如何将此编码更改为数组?因为我发现这一步太长了。我是新手,所以你可以帮助我。谢谢。
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);
}
}
答案 0 :(得分:2)
如果您可以控制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]);
}
虽然坚持使用当前代码或使用switch
可能会更好。它很冗长,是的,但非常清楚。
答案 1 :(得分:0)
一种选择是使用LevelListDrawable
。
您可以像这样定义Drawable:
<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>
在XML或代码中,将display2
的背景设置为此Drawable。
然后,您可以将代码简化为:
if(num2 == 1) {
display2.setImageLevel(num1);
}