Java 为什么我不能将其转换为基于xml Id的按钮?
这部分用于设置我创建的一些按钮的IDJava 为什么我不能将其转换为基于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:
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;