Java 如何在单击时更改ImageButton图像。我的代码不起作用
我不明白为什么我的代码不起作用。我已经声明了一个ImageButton,当用户点击图像时,我要增加Java 如何在单击时更改ImageButton图像。我的代码不起作用,java,android,Java,Android,我不明白为什么我的代码不起作用。我已经声明了一个ImageButton,当用户点击图像时,我要增加valHomeFouls。当valHomeFouls>5时,它被重置为0 出于某种原因,它不会更改图像onClick // set the onClick listener for the foulsHome ImageButton btnFoulsHome.setOnClickListener(new View.OnClickListener() { @Overr
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);
}
}
});
有人知道为什么吗?您忘记了
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);
哪个不是您想要的…valFoulsHome++是否声明为静态变量?valFoulsHome初始化为什么?在每种情况下添加
break
,感谢您的帮助!我没有忘记中断声明,我只是不正确的行为没有他们。我认为,一旦valFoulsHome==5,其他人就不会触发,因为他们不触发,那么对于4,3,2,1或0,情况就不是这样了。谢谢你纠正我。它工作完美!