-2

我遇到了一个简单的 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();
          }

       }
    });
4

5 回答 5

3

阅读如何在 Java 中比较字符串?


所以简单地改变

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

if(("1".equals(Global.controlNum))||("2".equals(Global.controlNum) ))
于 2013-08-21T08:49:55.557 回答
0

你应该equlas()用来比较String

 Global.controlNum.equlas("1")
于 2013-08-21T08:50:23.387 回答
0

尝试更换

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

if((Global.controlNum.equalsIgnoreCase("1"))||(Global.controlNum.equalsIgnoreCase("2") ))
于 2013-08-21T08:51:46.450 回答
0

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

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

于 2013-08-21T08:51:46.923 回答
0

你应该改变它:

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

if((Global.controlNum.equals("1"))||(Global.controlNum.equals("2") ))
于 2013-08-21T08:51:53.420 回答