0

我在启动时有一个应用程序,它执行 3 次检查(一切都发生在一个名为“应用程序”的单独文件中):首先是互联网连接,然后是互联网连接类型,最后是应用程序启动主要活动的权限。

所有 3 项检查都正确通过,但是,在最后一次通过时,我得到了一个字符串值“False”,这很好,但是在启动屏幕中,当我想检查该值时,它不起作用。如果值为 false,我确实设置了 if block 以启动另一个活动,但它没有,它只是忽略该块。

这是代码:

 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

4 回答 4

1

改成这个result.equals("false") or result.equalsIgnoreCase("false")。您不能使用==运算符比较字符串。

对 else 部分做同样的事情。

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();
    }
于 2012-09-29T13:15:17.113 回答
1

您无法在 Java 中将Strings 与 s 进行比较。==改为使用String.equals()

请参阅如何比较 Java 中的字符串?一个很好的解释。

于 2012-09-29T13:15:30.410 回答
1

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

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

于 2012-09-29T13:15:32.000 回答
1

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

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

你会得到正确的结果

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

或者

if( APP.connectionCheck(InitActivity.this).equalsIgnoreCase("true"))
{
}
于 2012-09-29T13:19:32.457 回答