简单if语句阻止代码工作

时间:2013-08-21 08:48:17

标签: java android string button if-statement

我遇到一个简单的if语句问题,我不太清楚为什么。我有一个edittext框和一个按钮,当用户在edittext中输入一个值然后按下按钮时,输入到框中的任何内容都被转换为字符串并存储在一个变量中,然后这个变量显示在一个toast中。现在这个工作完全正常,但我希望它只显示如果某个值输入到编辑框中,但是当我输入if语句来验证它时,它似乎完全不理会if语句而什么都不做。它不会导致任何错误,但即使输入了正确的字符串,它也会停止显示任何Toast。我确信这很简单,但我似乎无法解决这个问题。如果有人能解决它为什么这样做会很棒。
以下代码:

当if语句被注释掉时的工作代码:

         saveBtn1.setOnClickListener(new View.OnClickListener() {
           @Override
        public void onClick(View view) {
           Global.controlNum = inputTxt1.getText().toString();
         // if((Global.controlNum == "1")||(Global.controlNum == "2" )){
              Toast toast= Toast.makeText(SettingsScreen.this,"hello " + Global.controlNum, Toast.LENGTH_SHORT);
              toast.setGravity(Gravity.CENTER, 0, -100);
                  toast.show();
         // }

       }
    });


    如果if语句被引入则它将什么都不做:

     saveBtn1.setOnClickListener(new View.OnClickListener() {
       @Override
             public void onClick(View view) {
               Global.controlNum = inputTxt1.getText().toString();
             if((Global.controlNum == "1")||(Global.controlNum == "2" )){
                 Toast toast= Toast.makeText(SettingsScreen.this,"hello " +       Global.controlNum,     Toast.LENGTH_SHORT);
                  toast.setGravity(Gravity.CENTER, 0, -100);
                  toast.show();
          }

       }
    });

5 个答案:

答案 0 :(得分:3)

了解How do I compare strings in Java?


所以简单地改变

if((Global.controlNum == "1")||(Global.controlNum == "2" ))

使用

if(("1".equals(Global.controlNum))||("2".equals(Global.controlNum) ))

答案 1 :(得分:0)

您应该使用equlas()来比较String

 Global.controlNum.equlas("1")

答案 2 :(得分:0)

尝试替换

if((Global.controlNum == "1")||(Global.controlNum == "2" ))

if((Global.controlNum.equalsIgnoreCase("1"))||(Global.controlNum.equalsIgnoreCase("2") ))

答案 3 :(得分:0)

使用Global.controlNum.equals("1")

如果您想比较Java中的字符串(Android),请始终使用方法equals(String)equalsIgnoreCase(String)

答案 4 :(得分:0)

你应该改为:

if((Global.controlNum == "1")||(Global.controlNum == "2" ))

if((Global.controlNum.equals("1"))||(Global.controlNum.equals("2") ))