java - 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;
}
}
解决方案
推荐阅读
- r - 你如何计算R中数据框中列表中的项目数?
- azure-functions - 处理 CSV 文件的 Azure 函数
- java - 如何导入此 API Java?类路径?
- c# - C# WebClient.DownloadString 不返回整个网页源
- syntax - Antlr 奇怪的括号语法
- project-reactor - 在 Reactor Sinks.Many() 中相当于 EmitterProcessor onCancel
- java - 使用 String 参数进行锁定时,锁定的对象是什么?
- javascript - 如何停止在检测表单是否已提交的函数之外启动的 setTimeout?
- r - RMarkdown 表不会使用 kable_styling 减小大小
- javascript - 如何从 Google Drive 复制文件夹以使用 JS 在 Google Drive 中创建新文件夹