Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我不能将其转换为基于xml Id的按钮?_Java_Android_Xml - Fatal编程技术网

Java 为什么我不能将其转换为基于xml Id的按钮?

Java 为什么我不能将其转换为基于xml Id的按钮?,java,android,xml,Java,Android,Xml,这部分用于设置我创建的一些按钮的ID protected void btnClicked(View view){ Button btnSelected = (Button)view; switch (btnSelected.getId()){ case R.id.btn1: btnId = 1; break; case R.id.btn2:

这部分用于设置我创建的一些按钮的ID

 protected void btnClicked(View view){
        Button btnSelected = (Button)view;

        switch (btnSelected.getId()){

            case R.id.btn1:
                btnId = 1;
                break;
            case R.id.btn2:
                btnId = 2;
                break;
            case R.id.btn3:
                btnId = 3;
                break;
            case R.id.btn4:
                btnId = 4;
                break;
            case R.id.btn5:
                btnId = 5;
                break;
            case R.id.btn6:
                btnId = 6;
                break;
            case R.id.btn7:
                btnId = 7;
                break;
            case R.id.btn8:
                btnId = 8;
                break;
            case R.id.btn9:
                btnId = 9;
                break;
            }
这就是问题发生的地方

我不能让按钮“btSelectForRobot”成为XML标记的id,如果它满足“case”条件。它告诉我一个错误

错误:(168,45)错误:不兼容的类型:int无法转换为按钮

我应该怎么做才能让它工作

protected  void robotPlayerAuto(){

         //Checking for empty buttons so that the robot can play.
          for(int btnIds =0; btnIds < 9; btnIds++){
              if(!(player1.contains(btnIds) || player2.contains(btnIds))){
                  robotPlayer.add(btnIds);
              }
          }

            Random randomBtnPicker = new Random();
            int pickedRandom =  randomBtnPicker.nextInt(robotPlayer.size()-0)+0;
            int btnIdRobot = robotPlayer.get(pickedRandom);
            Button btnSelectForRobot = null;


            switch (btnIdRobot){
                case 1:
                    btnSelectForRobot = R.id.btn1;
                    break;
                case 2:
                    btnSelectForRobot = R.id.btn2;
                    break;
                case 3:
                    btnSelectForRobot = R.id.btn3;
                    break;
                case 4:
                    btnSelectForRobot = R.id.btn4;
                    break;
                case 5:
                    btnSelectForRobot = R.id.btn5;
                    break;
                case 6:
                    btnSelectForRobot = R.id.btn6;
                    break;
                case 7:
                    btnSelectForRobot = R.id.btn7;
                    break;
                case 8:
                    btnSelectForRobot = R.id.btn8;
                    break;
                case 9:
                    btnSelectForRobot = R.id.btn9;
                    break;
            }
protectedvoid robotplayerato(){
//检查是否有空按钮,以便机器人可以玩。
对于(int-btnIds=0;btnIds<9;btnIds++){
如果(!(player1.contains(btnIds)| | player2.contains(btnIds))){
添加(btnIds);
}
}
Random randomBtnPicker=新的Random();
int pickedRandom=randomBtnPicker.nextInt(robotPlayer.size()-0)+0;
int btnIdRobot=robotPlayer.get(pickedRandom);
按钮btnSelectForRobot=null;
开关(BTNID机器人){
案例1:
btnSelectForRobot=R.id.btn1;
打破
案例2:
btnSelectForRobot=R.id.btn2;
打破
案例3:
btnSelectForRobot=R.id.btn3;
打破
案例4:
btnSelectForRobot=R.id.btn4;
打破
案例5:
btnSelectForRobot=R.id.btn5;
打破
案例6:
btnSelectForRobot=R.id.btn6;
打破
案例7:
btnSelectForRobot=R.id.btn7;
打破
案例8:
btnSelectForRobot=R.id.btn8;
打破
案例9:
btnSelectForRobot=R.id.btn9;
打破
}

因为您需要查看
按钮

btnSelectForRobot = (Button) findViewById(R.id.btn1);
试一试

而不是

btnSelectForRobot = R.id.btn1;
大概是这样的:

    switch (btnIdRobot){
        case 1:
            btnSelectForRobot.setId(R.id.btn1);
            break;
        case 2:
            btnSelectForRobot.setId(R.id.btn2);
            break;

如果您仍然需要帮助,请在下面发表评论

效果也很好!非常感谢您为什么将Alex的答案标记为正确而不是我的?misclick?:D@newprogrammer
    switch (btnIdRobot){
        case 1:
            btnSelectForRobot.setId(R.id.btn1);
            break;
        case 2:
            btnSelectForRobot.setId(R.id.btn2);
            break;