Android if else块不会运行

时间:2012-09-29 13:13:36

标签: android if-statement android-activity

我有一个应用程序启动我预先形成3个检查(evrything发生在一个名为Application的单独文件中),检查互联网连接,互联网连接类型,并且应用程序有权启动主要活动..所有三个通过很好,并在最后我得到一个字符串值“假”,这很好,但在启动屏幕,当我想检查该值,他不会这样做,我确实设置如果阻止,如果值是假的lounch另一项活动,但他不会,他只是进入那个街区

这是代码

 public void onCreate(Bundle savedInstanceState) {
    setFullScreen();
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout_activity_init);
    if(APP.connectionCheck(InitActivity.this) == "TRUE"){
        JSONObject JOBJC = APP.getJSON(APP.defaultUrl());
        String result = APP.checkPermission(JOBJC);
        if(result=="false"){
            Intent i = new Intent(this,app.pcg.notation.Notation.class);
            startActivity(i);
            finish();
        }else if(result=="true"){

        }
    }else{
        Intent i = new Intent(this,app.pcg.notation.Notation.class);
        startActivity(i);
        finish();
    }
}

4 个答案:

答案 0 :(得分:1)

更改为此result.equals("false") or result.equalsIgnoreCase("false")。您无法使用==运算符比较字符串。

为其他部分做同样的事。

result.equals("true") or result.equalsIgnoreCase("true")

修改代码

if(APP.connectionCheck(InitActivity.this).equalsIgnoreCase("true")){
        JSONObject JOBJC = APP.getJSON(APP.defaultUrl());
        String result = APP.checkPermission(JOBJC);
        if(result.equalsIgnoreCase("false")){
            Intent i = new Intent(this,app.pcg.notation.Notation.class);
            startActivity(i);
            finish();
        }else if(result.equalsIgnoreCase("true")){

        }
    }else{
        Intent i = new Intent(this,app.pcg.notation.Notation.class);
        startActivity(i);
        finish();
    }

答案 1 :(得分:1)

您无法在Java中将String==进行比较。请改用String.equals()

请参阅How do I compare strings in Java?以获得更好的解释。

答案 2 :(得分:1)

字符串比较必须与.equals()完成。使用==对象来比较指针值(即它是同一个对象吗?)而不是值。

所以,if(APP.connectionCheck(InitActivity.this).equals("TRUE")) ......

答案 3 :(得分:1)

在比较两个字符串时总是使用 equals();

因为==运算符检查对象的引用, 而equals()检查其值。

你会得到正确的结果

if( APP.connectionCheck(InitActivity.this).equals("true"))
{
}

if( APP.connectionCheck(InitActivity.this).equalsIgnoreCase("true"))
{
}