我有一个应用程序启动我预先形成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();
}
}
答案 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"))
{
}