在Android中启用随机按钮

时间:2013-12-29 13:54:41

标签: android button resources

我需要使用随机数启用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的解决方案?

1 个答案:

答案 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]范围内