在这种方法中:
private void implementVisibility(EditText A, EditText B, ImageButton C, boolean visible) {
if (visible) {
A.setVisibility(View.VISIBLE);
B.setVisibility(View.VISIBLE);
C.setVisibility(View.VISIBLE);
}
else if (!visible) { // warning here
}
}
在else if (!visible)
行,我收到警告:
条件!可见总是正确的 可见值始终为假
但是看看调用方法:
if (count2.getVisibility() == View.INVISIBLE) {
implementVisibility(count2, action2, remove2,true);
}
visible
true
,因此总是为false。为什么编译器没有注意到这一点?
注意:请不要仅仅因为这个问题被严重贬低而进行投票。这个问题已经过编辑和改进。谢谢。
答案 0 :(得分:4)
当程序控制到达else if(!visible){
时,visible
只能 为false
。
您的编译器暗示您应该将代码澄清为else {
。
答案 1 :(得分:-1)
布尔变量只有2个值为true或false,因此您应该按以下方式编辑代码:
private void implementVisibility(EditText A, EditText B, ImageButton C, boolean visible) {
if (visible) {
A.setVisibility(View.VISIBLE);
B.setVisibility(View.VISIBLE);
C.setVisibility(View.VISIBLE);
}
else {
// do something
}
}