我需要使用随机数启用button
。按钮的名称是button1,button2,button3。这是我的代码:
b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
b.setBackgroundColor(R.color.redwue);
setNextButton(b);
}
});
public void setNextButton(Button str){
System.out.println("&&&&&&&&&&& SETNEXTBUTTON");
str.setEnabled(false);
int zufall = (int) (Math.random()*2);
int buttonid = str.getId();
int buttonname = (int) str.getId();
System.out.println("&&&&&&&&&&&" + getResources().getResourceEntryName(buttonid));
Button bnew = new Button(this);
bnew.setTag(buttonname);
System.out.println("&&&&&&&&&&&" + getResources().getResourceEntryName(bnew.getId()));
bnew.setEnabled(true);
现在使用此解决方案,我收到Unable to find resource id
错误。我知道为什么会这样,但我找不到如何随机启用其他button
的解决方案?
答案 0 :(得分:0)
当Button bnew = new Button(this);
创建按钮时,没有为该按钮分配ID。你必须自己做:
bnew.setId(yourId);
创建一个数组,保存您想要使用的所有按钮的ID。将randon数与数组上的位置匹配以获取该按钮的id。
int[] buttonIds = {R.id.button1, R.id.button2, R.id.button3};
Button bnew = (Button) findViewById(buttonIds[zufall]);
bnew.setEnabled(true);
你必须确保zufall在[0,buttonIds.length - 1]范围内