Мой TextView не обновляется - PullRequest
0 голосов
/ 10 июля 2011

Вот мой код

это мое приложение InstantMessage

метод processMessage автоматически выполнит, когда в приложении появится новое сообщение

Моя проблема - текстовое представление не работает, когдаМетод processMessage делать, но когда я отправляю сообщение, когда оба обновления текстового просмотра используют один и тот же метод 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 голосов
/ 10 июля 2011

Работает ли метод processMessage в потоке пользовательского интерфейса?если нет, используйте эту конструкцию

final String temp = InstantMessage.usernameCutter(arg0.getParticipant()) + "  :  "+ arg1.getBody();
runOnUiThread(new Runnable() {
    public void run() {
        updateChat(temp);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...