我的应用中有3张图片。图像是数字。所有3张图像上显示的最大数量将为9.首先,本机位置的图像为1,其余图像为0.点击“下一步”按钮,显示下一个数字,即2。以这种方式进行直到最后一个数字9,然后在下一次单击时,单位的位置变为0并且十位的位置变为1,依此类推将持续到999.还有一个前一个按钮,它将反转下一个按钮的状态并且将将数字减少一位数。我可以通过使用if else条件但无法对前一个按钮执行相同的操作来实现下一个按钮条件。请帮忙。
int image1 = 2;
int image10 = 0;
int image100 = 0;
int max = 10;
final int [] images = {
R.drawable.num00,R.drawable.num_0, R.drawable.num1, R.drawable.num2, R.drawable.num3, R.drawable.num4,
R.drawable.num5, R.drawable.num6, R.drawable.num7, R.drawable.num8, R.drawable.num9
};
ImageButton next = (ImageButton)findViewById(R.id.imageButton1);
next.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if((image1==max)&&(image10<max)) //for value with 9, 19... to increment
{
image1=1;
if (image10==0)
{
image10=2;
}
else
{
image10++;
}
img1.setImageResource(images[image1]);
img2.setImageResource(images[image10]);
}
else if((image1==max)&&(image10==max)&&(image100>=0)&&(image100<=10)) //for value with 9 in 1st block to increment
{
image1=1;
image10=1;
if (image100==0)
{
image100=2;
}
else
{
image100++;
}
img1.setImageResource(images[image1]);
img2.setImageResource(images[image10]);
img3.setImageResource(images[image100]);
}
else if (image100<=10) //for value below 9 in 1st block to increment
{
image1++;
img1.setImageResource(images[image1]);
}
}
});
这里,image1是图像在单位的位置,image10在十位,而image100在百位。
答案 0 :(得分:0)
实施可以进行很多优化。
为什么你不能使用如下的简单数字。
int number = 0;
下一个按钮:
if(number <1000){
number++
updateImages()
}
上一个按钮:
if(number > 0){
number--
updateImages()
}
对上述/下一个按钮执行上述操作后,只需编写如下方法。
updateImages(){
unitsPlace = number%10;
tensPlace = ((number/10)%10);
hundredsPlace = ((number/100)%10);
img1.setImageResource(images[hundredsPlace]);
img2.setImageResource(images[tensPlace]);
img3.setImageResource(images[unitsPlace]);
}
多数民众赞成。