【发布时间】:2016-04-19 23:16:37
【问题描述】:
我目前有 8 个 imageButtons 设置了 id 的 imageButton1 到 imageButton8。
当我单击特定按钮(例如 imageButton2)时,我想遍历名为 image1....image10 的可绘制文件夹中的图像,并将图像设置为每次单击时的 imageButton。
我已经查看了各种 for 循环来解决这个问题,但它们没有任何结果。这是 for 循环尝试的 sn-p:
26/4/16 更新
已解决
//UPDATED 25/4/16
ImageButton btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8;
ImageButton[] btns;
int[] drawables = new int[]{R.drawable.image1,R.drawable.image2,R.drawable.image3,R.drawable.image4,R.drawable.image5,R.drawable.image6,R.drawable.image7,R.drawable.image8};
@Override
protected void onCreate(Bundle savedInstanceState) {
btn1 = (ImageButton) findViewById(R.id.imageButton1);
btn2 = (ImageButton) findViewById(R.id.imageButton2);
btn3 = (ImageButton) findViewById(R.id.imageButton3);
btn4 = (ImageButton) findViewById(R.id.imageButton4);
btn5 = (ImageButton) findViewById(R.id.imageButton5);
btn6 = (ImageButton) findViewById(R.id.imageButton6);
btn7 = (ImageButton) findViewById(R.id.imageButton7);
btn8 = (ImageButton) findViewById(R.id.imageButton8);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
btn3.setOnClickListener(this);
btn4.setOnClickListener(this);
btn5.setOnClickListener(this);
btn6.setOnClickListener(this);
btn7.setOnClickListener(this);
btn8.setOnClickListener(this);
}
btns = new ImageButton[]{btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8};
}
int counter = 0;
@Override
public void onClick(View v)
{
counter ++;
for (int i = 0; i < btns.length; i++)
{
if (v.getId() == btns[i].getId())
{
if(counter ==8)
{
counter =0;
}
((ImageButton)v).setImageResource(drawables[counter]);
}
}
}
}
26/4/16 更新 解决了
另一种尝试是创建一个计数器来存储点击次数并设置 if 语句以根据每次点击更改图像。
这里的问题是考虑到我有多个按钮,它会创建大量代码。
最重要的是,当我在两个不同的按钮上运行它时,一旦我点击 imageButton1 几次,然后点击 imageButton2 几次,imageButton1 不再响应。
int counter =0;
@Override
public void onClick(View v)
{
counter++;
switch(v.getId())
{
case R.id.imageButton1:
if(counter == 1){
ImageButton btn1 = (ImageButton) findViewById(R.id.imageButton1);
btn1.setImageResource(R.drawable.image1);
break;
}else if (counter == 2){
ImageButton btn1 = (ImageButton) findViewById(R.id.imageButton1);
btn1.setImageResource(R.drawable.image2);
break;
}else if (counter == 3){
ImageButton btn1 = (ImageButton) findViewById(R.id.imageButton1);
btn1.setImageResource(R.drawable.image3);
break;
}else if (counter == 4){
ImageButton btn1 = (ImageButton) findViewById(R.id.imageButton1);
btn1.setImageResource(R.drawable.image4);
break;
}else if (counter == 5){
ImageButton btn1 = (ImageButton) findViewById(R.id.imageButton1);
btn1.setImageResource(R.drawable.image5);
break;
}else if (counter == 6){
ImageButton btn1 = (ImageButton) findViewById(R.id.imageButton1);
btn1.setImageResource(R.drawable.image6);
break;
}else if (counter == 7){
ImageButton btn1 = (ImageButton) findViewById(R.id.imageButton1);
btn1.setImageResource(R.drawable.image7);
break;
}else if (counter == 8){
ImageButton btn1 = (ImageButton) findViewById(R.id.imageButton1);
btn1.setImageResource(R.drawable.image8);
break;
}else if (counter == 9){
ImageButton btn1 = (ImageButton) findViewById(R.id.imageButton1);
btn1.setImageResource(R.drawable.image9);
break;
}else if (counter == 10) {
ImageButton btn1 = (ImageButton) findViewById(R.id.imageButton1);
btn1.setImageResource(R.drawable.image10);
counter = 0;
break;
}
break;
我将不胜感激任何指导,同时如果我解决了这个问题,我将重新发布编辑。干杯
【问题讨论】:
标签: android loops for-loop drawable imagebutton