Android中的随机按钮启用

Android中的随机按钮启用,android,button,resources,Android,Button,Resources,我需要使用随机数启用按钮。按钮的名称是button1、button2、button3。这是我的密码: b = (Button) findViewById(R.id.button1); b.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { b.setBackgroundColor(R.color

我需要使用随机数启用
按钮
。按钮的名称是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);

现在有了这个解决方案,我得到了一个
找不到资源id
错误。我知道这是为什么,但我找不到一个解决方案,当按钮由
button bnew=new button(此按钮)创建时,如何随机启用不同的
按钮

没有为该按钮分配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]中范围

当其中一个按钮被单击时,您希望执行一些不同的操作,而当任何其他按钮被单击时,您希望执行一些其他操作?我希望如果单击一个按钮,则禁用此操作并启用随机其他按钮。确定,但按钮2和按钮3已具有ID。使用“新建”,我只希望随机访问这两个按钮中的一个。