首页 > 解决方案 > OnClick 仅 image2 更改

问题描述

在此,我想按顺序更改图像。即在第一次单击 dice1 时,dice1 应更改,然后更改 dice2、dice3、dice4,然后再次更改 dice1,直到循环结束。但是每当我单击任何图像时,只有 dice2 中的图像会发生变化。我单击的图像也应该按照预定义的顺序进行更改。有人可以帮助修复代码。

JAVA文件

public class MainActivity extends AppCompatActivity{

private ImageView dice1,dice2,dice3,dice4;
private ImageView[] dice = { dice1, dice2, dice3, dice4 };
private Random rng = new Random();
public int i=0,j=0;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    dice[0] = findViewById(R.id.imageView3);
    dice[1]= findViewById(R.id.imageView7);
    dice[2] = findViewById(R.id.imageView9);
    dice[3] = findViewById(R.id.imageView5);

    while(j<5){
        if(i==4){
            i=0;}
    dice[i].setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            rollDice();
        }
    });
    j++;
    i++;
    }
}

private void rollDice(){
    int randomNo = rng.nextInt(6)+1;

    switch (randomNo){
        case 1:
            dice[i].setImageResource(R.drawable.one);
            break;
        case 2:
            dice[i].setImageResource(R.drawable.two);
            break;
        case 3:
            dice[i].setImageResource(R.drawable.three);
            break;
        case 4:
            dice[i].setImageResource(R.drawable.four);
            break;
        case 5:
            dice[i].setImageResource(R.drawable.five);
            break;
        case 6:
            dice[i].setImageResource(R.drawable.six);
            break;
    }
}

标签: javaandroidarraysimageandroid-imageview

解决方案


推荐阅读