我创建了一个类来确保只能选择两个项目。
所有项目的状态均为 True 或 False 。
因此该方法询问三个项目和三个状态。我尝试只显示两个项目,状态为 True 。
class EscolheItens {
private void escolheItem(boolean um, boolean dois, boolean tres, ImageView one, ImageView two, ImageView three) {
if (um == false && dois == true && tres == true) {
one.setVisibility(View.INVISIBLE);
} else if ((um == false && dois == true && tres == false) || (um == false && dois == false && tres == true)) {
one.setVisibility(View.INVISIBLE);
} else if (um == false && dois == false && tres == false) {
one.setVisibility(View.INVISIBLE);
dois = true; //here I put it true
two.setVisibility(View.VISIBLE);
}
}
}
现在我使用这个类的方法
livrofechado.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
livroFechadoStatus = false;
EscolheItens NovaEscolha = new EscolheItens();
NovaEscolha.escolheItem(livroFechadoStatus, barrasOuroStatus, antidotoAranhaStatus, livrofechado, barrasOuro, antidotoAranha);
}
});
barrasOuro.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
barrasOuroStatus = false;
EscolheItens NovaEscolha = new EscolheItens();
NovaEscolha.escolheItem(barrasOuroStatus, antidotoAranhaStatus, livroFechadoStatus, barrasOuro, antidotoAranha, livrofechado);
}
});
antidotoAranha.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
antidotoAranhaStatus = false;
EscolheItens NovaEscolha = new EscolheItens();
NovaEscolha.escolheItem(antidotoAranhaStatus, livroFechadoStatus, barrasOuroStatus, antidotoAranha, livrofechado, barrasOuro);
}
});
问题是所有布尔值保持为假。
我知道我在所有Onclicks
上设置了false,但在内部方法中它们应该更改。
在摆出这里之前我真的尝试过很多东西。但没有任何效果。
答案 0 :(得分:1)
如果要在布尔值更改后进行更改,请在
中创建一个方法class EscolheItens {
private void escolheItem(boolean um, boolean dois, boolean tres, ImageView one, ImageView two, ImageView three) {
if (um == false && dois == true && tres == true) {
one.setVisibility(View.INVISIBLE);
} else if ((um == false && dois == true && tres == false) || (um == false && dois == false && tres == true)) {
one.setVisibility(View.INVISIBLE);
} else if (um == false && dois == false && tres == false) {
one.setVisibility(View.INVISIBLE);
dois = true; //here I put it true
two.setVisibility(View.VISIBLE);
update(um,dois,tres,one); // call method
}
}
public void update(boolean um, boolean dois, boolean tres, ImageView one) {
if (um == false && dois == true && tres == true) {
one.setVisibility(View.INVISIBLE);
}
}
}