0

サーバーへのソケット接続を使用するアプリケーションを作成しました。このサーバーは、BufferedReader でこれを読み取る電話に情報文字列を送信します。この情報を画面に表示したいのですが(たとえば、テキストボックスに)、この場合、textbox.append コマンドは機能しません。エラーはありませんが、実行時に文字列がテキスト ボックスに追加されません。テキストビューで同じことを試しました。これがこのコードの一部です。commands() 関数は接続の進行中に呼び出され、変数は最初に宣言されます。

public void commands() throws Exception{

Responce = buffer.readLine();
final TextView textViewToChange = (TextView) findViewById(R.id.textView1);
textViewToChange.setText(Responce);

commands(); }

誰かがこの問題を解決する方法を知っていればうれしいです。ありがとう :)

4

2 に答える 2

1

Android の UI は別のスレッドから更新できません。見る

 AsyncTask

こちらもお読みくださいUi Update Android

于 2013-04-18T13:14:40.767 に答える
1

メイン UI スレッドで UI を更新する必要があります。以下のように runOnUiThread を使用できます。

  runOnUiThread(new Runnable() //run on ui thread
                 {
                  public void run() 
                  {       
                      textViewToChange.setText(Responce);
                 }
                 });
于 2013-04-18T13:16:52.407 に答える