I currently have 8 imageButtons set up with id's imageButton1 to imageButton8.
When i click on a particular button (imageButton2 for example) I want to loop through my images in the drawable folder named image1....image10, and set the image to the imageButton for each click.
I have looked at various for loops to solve this but there they have led nowhere. Here is a snippet of a for loop attempt:
UPDATED 26/4/16
SOLVED
//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]);
}
}
}
}
UPDATED 26/4/16 SOLVED
Another attempt was to create a counter to store the number of clicks and set if statements to change the images according to each click.
The problem here was it creates a huge amount of code considering i have multiple buttons.
On top of that when i run this on two different buttons, once i tap on imageButton1 a few times, then imageButton2 a few times, imageButton1 doesn't respond anymore.
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;
I would appreciate any guidance, meanwhile if i solve this issue i will repost an Edit. Cheers