0

私はBluetoothチャットの例を使用していますが、次の問題があります..

ハンドラー内に if ステートメントを追加すると、常に false が返されます。

  case MESSAGE_READ:
                    byte[] readBuf = (byte[]) msg.obj;
                    String stringMsg = new String(readBuf);

                    if ( stringMsg == "a"){
                        Log.i(tag,"x RECEIVED OK...");
                    }
                    break;

プログラムをデバッグすると、次のようになります。

stringMsg = {java.lang.String@830020784928}"a��������....."
        value = {char[1364]830020788104}
               [0] = 'a' 97
               [1] = '\u0000' 0
               [2] = '\u0000' 0
               [3] = '\u0000' 0
               [4] = '\u0000' 0
               [5] = '\u0000' 0
               [6] = '\u0000' 0 
                  ...
                  ...
                  ...
                  ...
                  ...
        hashCode = 0
          offset = 0
           count = 1024

文字を文字列(stringMsg)として保存し、ifステートメントを使用してその内容を確認できるように、入力ストリームを読み取るのを手伝ってもらえますか?

前もって感謝します..!

4

1 に答える 1

0

参照ではなく値を比較する場合は 、if (stringMsg == "a")if(stringMsg.equals("a"))にする必要があります。

于 2014-02-13T00:57:17.993 に答える