我目前有这段代码,但我需要为红绿蓝重复一遍,有没有办法不用复制和粘贴代码 3 次就可以做到?
yellow.setOnClickListener(new View.OnClickListener() {
public void onClick (View v) {
switch (buttonCount) {
case 1:
empty1.setImageResource(R.drawable.yellow);
buttonCount++;
guess1= Colour.YELLOW;
break;
case 2:
empty2.setImageResource(R.drawable.yellow);
buttonCount++;
guess2=Colour.YELLOW;
break;
case 3:
empty3.setImageResource(R.drawable.yellow);
buttonCount++;
guess3=Colour.YELLOW;
break;
case 4:
empty4.setImageResource(R.drawable.yellow);
buttonCount++;
guess4=Colour.YELLOW;
break;
case 5:
empty5.setImageResource(R.drawable.yellow);
buttonCount++;
guess5=Colour.YELLOW;
break;
}
}
});
最佳答案
您可以通过检查单击了哪个按钮然后从中设置适当的图像来轻松地将其抽象出来,这是一个快速示例(尽管可能无法正常工作,具体取决于您的 ID):
public void onClick (View v) {
int drawable = 0;
Colour guess = null;
switch (v.getId())
{
case R.id.yellowButton:
drawable = drawable;
guess = Colour.YELLOW;
break;
case R.id.blueButton:
drawable = R.drawable.blue;
guess = Colour.BLUE
break;
case R.id.redButton:
drawable = R.drawable.red;
guess = Colour.RED
break;
case R.id.greenButton:
drawable = R.drawable.green;
guess = Colour.GREEN
break;
}
switch (buttonCount)
{
case 1:
empty1.setImageResource(drawable);
buttonCount++;
guess1= guess;
break;
case 2:
empty2.setImageResource(drawable);
buttonCount++;
guess2=guess;
break;
case 3:
empty3.setImageResource(drawable);
buttonCount++;
guess3=guess;
break;
case 4:
empty4.setImageResource(drawable);
buttonCount++;
guess4=guess;
break;
case 5:
empty5.setImageResource(drawable);
buttonCount++;
guess5=guess;
break;
}
}
然后您可以简单地将按钮注册到此 onClick 方法(通过 xml 或以编程方式)
关于Java for android,代码重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20166819/