-2

我有这个:

int life=3;

if (life=2){
   txt1.setVisibility(View.INVISIBLE);
   }
else if (life=1){
   txt2.setVisibility(View.INVISIBLE);
   }
else if (life=0){
   txt3.setVisibility(View.INVISIBLE);
   }

但我收到错误“类型不匹配:无法从 int 转换为 boolean”。那么,你能帮我解决这个问题吗?

4

3 回答 3

3

==代表比较和=分配。所以你需要这个

int life=3;

if (life==2){
   txt1.setVisibility(View.INVISIBLE);
   }
else if (life==1){
   txt2.setVisibility(View.INVISIBLE);
   }
else if (life==0){
   txt3.setVisibility(View.INVISIBLE);
   }

仅供参考, if() 采用布尔参数而不是整数,因此编译器会错误地告诉您相同的

于 2013-10-11T07:30:54.127 回答
1

编译器会抱怨这些if语句,因为您传递的是int值 ( life = 2) 而不是boolean( life == 2)。将赋值运算符 () 替换=为等于运算符 ( ==) 没关系,但对于这种情况,您应该考虑更改if类似的块,forswitch-case语句。-

switch (life) {
    case 2:
        txt1.setVisibility(View.INVISIBLE);
    break;
    case 1:
        txt2.setVisibility(View.INVISIBLE);
    break;
    case 0:
        txt3.setVisibility(View.INVISIBLE);
    break;
}
于 2013-10-11T07:32:56.223 回答
0

改变这个

if (life=2){
txt1.setVisibility(View.INVISIBLE);
}
else if (life=1){
txt2.setVisibility(View.INVISIBLE);
}
else if (life=0){
txt3.setVisibility(View.INVISIBLE);
}

对此

if (life==2){
txt1.setVisibility(View.INVISIBLE);
}
else if (life==1){
txt2.setVisibility(View.INVISIBLE);
}
else if (life==0){
txt3.setVisibility(View.INVISIBLE);
}
于 2013-10-11T07:33:46.130 回答