如何更改ImageButton图像onclick。我的代码不起作用

时间:2012-12-24 23:02:03

标签: java android

我无法弄清楚为什么我的代码无效。我已经宣布了一个ImageButton,而且当用户点击图片时,我要增加valHomeFouls。当valHomeFouls > 5时,它会重置为0.

出于某种原因,它没有改变onClick的图像。

    // set the onClick listener for the foulsHome ImageButton
    btnFoulsHome.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            valFoulsHome++;

            if( valFoulsHome > 5 )
                valFoulsHome = 0;

            switch( valFoulsHome ) {
                case 5:
                    btnFoulsHome.setImageResource(R.drawable.fouls5);
                case 4:
                    btnFoulsHome.setImageResource(R.drawable.fouls4);
                case 3:
                    btnFoulsHome.setImageResource(R.drawable.fouls3);
                case 2:
                    btnFoulsHome.setImageResource(R.drawable.fouls2);
                case 1:
                    btnFoulsHome.setImageResource(R.drawable.fouls1);
                case 0:
                    btnFoulsHome.setImageResource(R.drawable.fouls0);
            }
        }
    });

谁能明白为什么?

1 个答案:

答案 0 :(得分:9)

您忘记了break声明:

switch( valFoulsHome ) {
    case 5:
        btnFoulsHome.setImageResource(R.drawable.fouls5);
        break;
    case 4:
        btnFoulsHome.setImageResource(R.drawable.fouls4);
        break;
    case 3:
        btnFoulsHome.setImageResource(R.drawable.fouls3);
        break;
    case 2:
        btnFoulsHome.setImageResource(R.drawable.fouls2);
        break;
    case 1:
        btnFoulsHome.setImageResource(R.drawable.fouls1);
        break;
    case 0:
    default: // You should always have a default case
        btnFoulsHome.setImageResource(R.drawable.fouls0);
}

没有break个陈述,案件“落空”。这意味着,如果valFoulsHome == 2代码调用以下每一行:

btnFoulsHome.setImageResource(R.drawable.fouls2);
btnFoulsHome.setImageResource(R.drawable.fouls1);
btnFoulsHome.setImageResource(R.drawable.fouls0);

这不是你想要的......