if语句和Imageview

时间:2015-08-29 20:59:04

标签: java android if-statement

我需要根据值显示和图像。但是我的代码只显示最后一行。

示例值为2,因此要显示的图像必须为" srm2",但我的代码显示与值6对应的图像。

为什么???

 totsrmI=((int) Math.round(totsrmI));
    if (totsrmI==2) {
        colorpint.setImageResource(R.drawable.srm2);
    }
    if (totsrmI==3) {
        colorpint.setImageResource(R.drawable.srm3);
    }
    if (totsrmI==4) {
        colorpint.setImageResource(R.drawable.srm4);
    }
    if (totsrmI==5) {
        colorpint.setImageResource(R.drawable.srm4);
    }
    if (totsrmI==6) {
        colorpint.setImageResource(R.drawable.srm6);
    }

3 个答案:

答案 0 :(得分:1)

if (totsrmI==2) {
    colorpint.setImageResource(R.drawable.srm2);
} else if (totsrmI==3) {
    colorpint.setImageResource(R.drawable.srm3);
} else if (totsrmI==4) {
    colorpint.setImageResource(R.drawable.srm4);
} else if (totsrmI==5) {
    colorpint.setImageResource(R.drawable.srm4);
} else if (totsrmI==6) {
    colorpint.setImageResource(R.drawable.srm6);
}

答案 1 :(得分:1)

如果你有if else语句,那么使用switch case更方便,因为switch比if-else更快。

switch(totsrmI)
{
case 2:
colorpint.setImageResource(R.drawable.srm2);
break;

case 3:
colorpint.setImageResource(R.drawable.srm3);
break;
case 4:
colorpint.setImageResource(R.drawable.srm4);
break;

case 5:
colorpint.setImageResource(R.drawable.srm5);
break;

case 6:
colorpint.setImageResource(R.drawable.srm6);
break;

default:
break;

}

答案 2 :(得分:0)

我的错误不是代码,而是编写代码的地方。 我的变量在一个方法上,我在这个方法之外编写了if语句

我纠正了,现在在方法

   totsrmI=((int) Math.round(totsrmI));
    if (totsrmI==2) {
        colorpint.setImageResource(R.drawable.srm2);
    }
    else if (totsrmI==3) {
        colorpint.setImageResource(R.drawable.srm3);
    }
    else if (totsrmI==4) {
        colorpint.setImageResource(R.drawable.srm4);
    }
    else if (totsrmI==5) {
        colorpint.setImageResource(R.drawable.srm4);
    }
    else if (totsrmI==6) {
        colorpint.setImageResource(R.drawable.srm6);
    }
    else if (totsrmI==7) {
        colorpint.setImageResource(R.drawable.srm6);
    }