Android Java Textbox.append无法在新线程中工作

时间:2013-04-18 13:13:33

标签: java android textbox

我创建了一个使用套接字连接到我的服务器的应用程序。此服务器向手机发送信息字符串,该信息字符串使用BufferedReader读取此信息。 现在我想在屏幕上显示此信息(例如在文本框中),但textbox.append命令在这种情况下不起作用。 没有错误,但在运行时它不会将字符串添加到文本框中。 尝试使用textviews。这是这段代码的一部分。 在连接进程中调用commands()函数,并在开头声明变量。

public void commands() throws Exception{

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

commands(); }

如果有人知道如何解决这个问题会很好。 谢谢:))

2 个答案:

答案 0 :(得分:1)

android中的UI无法从另一个Thread更新。看看

 AsyncTask

另请阅读Ui Update Android

答案 1 :(得分:1)

您需要在主UI线程上更新UI。您可以使用runOnUiThread,如下所示。

  runOnUiThread(new Runnable() //run on ui thread
                 {
                  public void run() 
                  {       
                      textViewToChange.setText(Responce);
                 }
                 });