if-else部分不起作用

时间:2014-08-14 08:29:49

标签: java if-statement

为什么if-else部分在下面的代码中不起作用。我在success之前检查了if的值,它返回true,但if内的代码无效。

protected void onPostExecute(Void aVoid) {
              super.onPostExecute(aVoid);    
              dialog.dismiss();
              System.out.println(success);
              if(success == "true")
              {
                  Toast t = Toast.makeText(getApplicationContext(), "Successfully logged in", Toast.LENGTH_SHORT);
                    t.show();
                    Intent intent = new Intent(MainActivity.this, Quote_Details.class);         
                    intent.putExtra("sessionId", sessionId);
                    startActivity(intent);
              }
              else if(success == "fals")
              {
               Toast f = Toast.makeText(getApplicationContext(), "LOGIN FAILED", Toast.LENGTH_LONG);
               f.show();
              }
             }

4 个答案:

答案 0 :(得分:5)

要比较字符串,请使用" .equals"。

E.g:

if (success.equals("true"))

编辑:哎呀,有人更快......好吧,至少你现在也有一个例子:)

答案 1 :(得分:3)

由于'success'是一个布尔变量(或者看起来如此),你必须像比较所有原始值一样进行比较。所以if(success){ }if(success == true){ }。我想澄清以下内容 - if(success)告诉if语句返回成功值,如果成功为真,则继续语句,如果为false则返回false /不继续语句。这是一种更好的方式,而不是if(success == true)

如果成功是String,那么if(success.equalsIgnoreCase("true")

这是因为String是一个对象而不是像int,boolean,char等原始数据类型。

您还可以在将来以相同的方式比较对象

答案 2 :(得分:2)

您应该使用equals方法比较字符串,而不是==运算符。运算符==只是比较对象引用,而不是对象的内容。

答案 3 :(得分:2)

当您处理String时 - 对象使用equals()进行比较:

protected void onPostExecute(Void aVoid) {
              super.onPostExecute(aVoid);    
              dialog.dismiss();
              System.out.println(success);
              if(success.equals("true"))
              {
                  Toast t = Toast.makeText(getApplicationContext(), "Successfully logged in", Toast.LENGTH_SHORT);
                    t.show();
                    Intent intent = new Intent(MainActivity.this, Quote_Details.class);         
                    intent.putExtra("sessionId", sessionId);
                    startActivity(intent);
              }
              else if(success.equals("fals"))
              {
               Toast f = Toast.makeText(getApplicationContext(), "LOGIN FAILED", Toast.LENGTH_LONG);
               f.show();
              }
             }