-2

単純な if ステートメントに問題があり、その理由がよくわかりません。ユーザーが編集テキストに値を入力してからボタンを押すと、ボックスに入力されたものはすべて文字列に変換されて変数に格納され、この変数はトーストに表示されます. これはそのままで問題なく動作しますが、特定の値が編集ボックスに入力された場合にのみ表示したいのですが、これを検証するために if ステートメントを入れると、if ステートメントを完全に無視して何もしません。エラーは発生しませんが、正しい文字列が入力されていても、トーストが表示されなくなります。これは簡単なことだと思いますが、うまくいかないようです。誰かがなぜこれを行うのかを理解できれば素晴らしいでしょう。
以下のコード:

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 に答える