5つのサイコロのリソースを設定するループを作成しようとしています。コードの最後の行の「imgBtnName」をいずれかのサイコロ名(「dice1」など)に変更しても、行はエラーになりません。ただし、forループに合うように名前を連結しようとすると、 setImageesourceでの次のエラー通知:
エラー
The method setImageResource(int) is undefined for the type String
何か案は?「intid」行に似た構文が欠落しているように感じます。
コード
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
}
}
});
}