我是新開發的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