我无法弄清楚为什么我的代码无效。我已经宣布了一个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);
}
}
});
谁能明白为什么?
答案 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);
这不是你想要的......