2013-10-11 4 views
-1

у меня есть этот один:как преобразовать целое число булевых андроида

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 в логическое значение». Итак, вы можете помочь мне решить эту проблему?

+1

Использовать двойные равные. if (life == 2) –

ответ

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); 
    } 

FYI, если() принимает булевых аргументов и не целого поэтому компилятор говорит вам то же самое в ошибке

1

Компилятор жалуется на заявления if, поскольку вы передаете int (life = 2) вместо boolean (life == 2). Замена назначения оператора (=) на равном оператор (==) это нормально, но для этого сценария вы должны рассмотреть вопрос об изменении if блоков, как один на один, для switch-case statement.-

switch (life) { 
    case 2: 
     txt1.setVisibility(View.INVISIBLE); 
    break; 
    case 1: 
     txt2.setVisibility(View.INVISIBLE); 
    break; 
    case 0: 
     txt3.setVisibility(View.INVISIBLE); 
    break; 
} 
+0

Спасибо за помощь. Я больше не получал ошибку, но когда я запускаю проект, эта часть не работает. что я должен положить в эту часть, чтобы она могла работать? – Nichi

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); 
} 
Смежные вопросы