Image 为什么在类内更改布尔值不会在类外生效

Image 为什么在类内更改布尔值不会在类外生效,image,android-studio,boolean,Image,Android Studio,Boolean,我创建了一个类来确保只能选择两个项目 所有项目的状态都可以为True或False 因此,该方法询问三个项目和三个状态。我尽量只让两个项目可见,并且状态为True 现在我使用这个类中的方法 livrofechado.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { livroFechadoSt

我创建了一个类来确保只能选择两个项目

所有项目的状态都可以为True或False

因此,该方法询问三个项目和三个状态。我尽量只让两个项目可见,并且状态为True

现在我使用这个类中的方法

 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);
            }
        });
问题是所有的布尔值都保持为False。 我知道我在所有onclick上都设置为false,但在方法内部它们应该更改


在这里摆姿势之前,我真的尝试了很多东西。但什么都没用

如果要在更改布尔值后进行更改,请在内部创建一个方法

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

请解释一下这个um==false&&dois&&tresdois==true&&和tres==true我刚刚编写了代码clearerum,dois,tres是它们各自的一,二,三个图像视图的布尔状态。你的意思是二应该设置为不可见,但不是吗?我提供了更多信息,但是的,我需要一些更新信息。我会检查你的答案。我只是告诉你这个想法,你必须基于你的逻辑私有布尔livroFechadoStatus=true;私有布尔值barrasourstatus=true;私有布尔值antidotoAranhaStatus=true;老兄,我找到了解决的办法。一旦该方法不更新布尔值,我将测试什么图像是可见的,并将此图像状态设置为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);
            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);
        }
    }
}