我的TextView没有更新

时间:2011-07-10 12:04:41

标签: android textview

这是我的代码

这是我的InstantMessage应用程序

当应用程序有新消息时,processMessage将自动执行该方法

我的问题是当方法processMessage执行时textview不起作用但是当textview更新时我发送消息时都使用相同的updateChat方法

@Override
public void onClick(View v) {
    String message = text.getText().toString();
    try {
        Log.e("On Click", message + "   :   " + contact);
        chat.sendMessage(message);
        message = username + " : " + message;
        updateChat(message);
    } catch (XMPPException e) {
        e.printStackTrace();
    }

}

public void updateChat(String message){
    chatLog += message + "\n";
    chatBox.setText(chatLog);
}

@Override
public void processMessage(org.jivesoftware.smack.Chat arg0, Message arg1) {
    String temp = InstantMessage.usernameCutter(arg0.getParticipant()) + "  :  "+ arg1.getBody();
    Log.e("ChatPage ", "ProcessMessage");
    updateChat(temp);
}

1 个答案:

答案 0 :(得分:0)

processMessage方法是否在UI线程上运行? 如果没有,请使用此构造

final String temp = InstantMessage.usernameCutter(arg0.getParticipant()) + "  :  "+ arg1.getBody();
runOnUiThread(new Runnable() {
    public void run() {
        updateChat(temp);
    }
});