0

私はソケットを使用するクライアントサーバープログラムを持っています。1つのAndroidタブレットはサーバーで、もう1つのAndroidはクライアントです。以下に示す最初の例では簡単なメッセージを送信していますが、2 番目の例では if ステートメントを使用しようとしましたが、うまくいきません。これはなぜですか?

receivedCommand は textView です

これは問題なく動作する最初の例です

public String line = null;
try {
  BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));

  while ((line = in.readLine()) != null) {
    Log.d("ServerActivity", line);
    handler.post(new Runnable() {
      @Override
      public void run() {
        receivedCommand.setText(line);
      }
    });
  }

次に、if ステートメントを使用した場合に機能しない 2 番目の例について説明します。

public String line = null;
try {

  BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));

  while ((line = in.readLine()) != null) {
    Log.d("ServerActivity", line);
    handler.post(new Runnable() {
      @Override
      public void run() {
        //receivedCommand.setText(line);

        if(line.equals("test")){
          receivedCommand.setText("test received"); 
        }

      }
    });
  }
4

1 に答える 1

1

あなたがしなければならなかったのは

line.trim().equals("test"))

他のソースから文字列を取得するときは常にtrim()、予期しない場所に空白が含まれている可能性があり、比較で false が返されます。

于 2013-01-24T01:39:23.617 に答える