我是新开发的Android和Java,并想知道如果有人能帮助我用下面的:传递字符串到活动
我创建一个运行服务器线程监听特定端口上的应用程序。我想将从连接的客户端收到的消息打印到活动中的TextView中。
服务器线程位于单独的类中。此类中的run方法侦听客户端连接,并将接收到的任何数据读取到String中。
对于我将此String的内容传回活动以便它可以更新TextView的最佳方式是什么?
从我(有限)的理解,只有ui线程应该更新TextView,我找不到一种方法来获取runOnUiThread来更新TextView。
根据要求添加代码。
活动代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView messages = (TextView) findViewById(R.id.messages);
try {
newThread server = new newThread(this, messages);
} catch(Exception e) {
Toast.makeText(ChatActivity.this, e.toString(), Toast.LENGTH_LONG).show();
}
}
在newThread类Run方法:
public void run()
{
serv = new ServerSocket(8000);
while(true)
{
cli = serv.accept();
user = cli.getInetAddress().toString();
BufferedReader cli_in = new BufferedReader(new InputStreamReader(cli.getInputStream()));
OutputStreamWriter cli_out = new OutputStreamWriter(cli.getOutputStream());
while((buf = cli_in.readLine()) != null)
{
// Update the messages TextView with buf
}
}
}
为了避免使事情变得过于杂乱我已经遗漏了什么无关的代码,我可以。
基本上,在run()中的inner while循环中,我想将“buf”字符串传递给活动,以便可以使用它的内容更新消息textview。
干杯
你可以添加一些你的代码吗?这样我们可以帮助你更好的... – amp 2012-04-22 14:34:59