Java对if语句使用boolean并在需要时进行更改

时间:2015-12-02 21:55:50

标签: java android

我是java的新手,不幸的是我的大脑已经在javascript版本中修复了......这并不好。

无论如何,我试图用java打开和关闭一个简单的菜单。我有这个脚本:

public class StartPage extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_start_page);

        //Handlers
        RelativeLayout menuContainer = (RelativeLayout) findViewById(R.id.MenuContainer);
        ImageView menuButton = (ImageView) findViewById(R.id.temp_menu);
        Boolean menuOpen = false;
        //Make sure the menu is not displaying
        menuContainer.setVisibility(View.GONE);

        menuButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                if (!menuOpen) {
                    boolean menuOpen = true;
                    RelativeLayout menuContainer = (RelativeLayout) findViewById(R.id.MenuContainer);
                    menuContainer.setVisibility(View.VISIBLE);
                } else {
                    boolean menuOpen = false;
                    RelativeLayout menuContainer = (RelativeLayout) findViewById(R.id.MenuContainer);
                    menuContainer.setVisibility(View.GONE);
                }
            }
        });
    }
}

所以,我直接使变量menuOpen false,但我想在if语句中使用和操作该变量。

我在if语句中出现错误,说我需要将变量设为final,所以我将其设为final,但之后我无法更改该变量。

这是我的大脑思维,所以我不确定在Java中是否有更好的方法。有什么帮助吗?

2 个答案:

答案 0 :(得分:2)

menuOpen作为类StartPage的成员变量。然后使用匿名类中的StartPage .this.menuOpen访问它。

public class StartPage extends Activity {
    boolean menuOpen = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_start_page);

        //Handlers
        RelativeLayout menuContainer = (RelativeLayout) findViewById(R.id.MenuContainer);
        ImageView menuButton = (ImageView) findViewById(R.id.temp_menu);
        //Make sure the menu is not displaying
        menuContainer.setVisibility(View.GONE);

        menuButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                if (!StartPage.this.menuOpen) {
                    StartPage.this.menuOpen = true;
                    RelativeLayout menuContainer = (RelativeLayout) findViewById(R.id.MenuContainer);
                    menuContainer.setVisibility(View.VISIBLE);
                } else {
                    StartPage.this.menuOpen = false;
                    RelativeLayout menuContainer = (RelativeLayout) findViewById(R.id.MenuContainer);
                    menuContainer.setVisibility(View.GONE);
                }
            }
        });

    }
}

答案 1 :(得分:0)

只需将menuOpen varible放在方法之外。

public class StartPage extends Activity {

 Boolean menuOpen = false;
    @Override
    protected void onCreate(Bundle savedInstanceState) {

这样听众的类就可以访问它了。