我正在尝试编写一个循环来设置 5 个骰子的资源。如果我将代码最后一行中的“imgBtnName”更改为任何骰子名称(例如“dice1”),则该行不会出错。但是,当我尝试连接名称以适应 for 循环时, setImageesource 上的以下错误通知:
错误
The method setImageResource(int) is undefined for the type String
有任何想法吗?我觉得我可能缺少类似于“int id”行的语法。
代码
public void PlayGame()
{
dice1 = (ImageButton)findViewById(R.id.btndice1);
dice2 = (ImageButton)findViewById(R.id.btndice2);
dice3 = (ImageButton)findViewById(R.id.btndice3);
dice4 = (ImageButton)findViewById(R.id.btndice4);
dice5 = (ImageButton)findViewById(R.id.btndice5);
begin = (Button)findViewById(R.id.btnroll);
roll = (Button)findViewById(R.id.btnbegin);
begin.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Random rand = new Random();
for (int i = 0; i < 6; i = i + 1) {
int rndInt = rand.nextInt(6) + 1; // Random number between 1 and 6
String imgBtnName = "dice" + (i + 1);
String imgName = "die" + rndInt;
int id = getResources().getIdentifier(imgName, "drawable", getPackageName());
imgBtnName.setImageResource(id); //trying use the imgButnName string to set dice1, dice2, dice3 etc to set the imagebutton resource
}
}
});
}