У меня есть текстовое представление, в которое я добавляю текст двумя способами: Первый способ: нажатием кнопки и получением того, что находится в EditText.
sendbutton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
txview.append("Text: "+txedit.getText()+"\n");
txedit.setText("");
}
});
И это прекрасно работает, когда я нажимаю кнопку обновления текстового представленияпредставление с новым текстом.
НО
Вторым способом я слушаю xmpp listener (библиотека asmack) и при получении сообщения добавляю его в textView.
chat = xmpp.getChatManager().createChat(contactid[1], new MessageListener() {
public void processMessage(Chat chat, Message message) {
try {
chat.sendMessage(message.getBody());
} catch (XMPPException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} txview.append("Text"+message.getFrom()+"\n"+message.getBody()+"\n"); } }
);;
Проблема в том, что я получаю сообщение, я знаю его наверняка (потому что я отправляю его пользователю с помощью chat.sendMessage (message.getBody ());), НО textview показывает мои сообщения только после того, как я изменил вид или перенес приложение в фоновый режим (нажав кнопку «Домой»), а затем вернул его обратно.
ЧтоЯ пытался вызывать invalidate () для каждого представления, вообще не работает.
Это какое-то решение или другой способ сделать то, что я делаю?