Android TextView не обновляет вид - PullRequest
0 голосов
/ 26 мая 2011

Итак, у меня есть текстовое представление, в котором я добавляю некоторые строки, когда мой слушатель получает определенные данные. Проблема в том, что textview обновляет текст только тогда, когда я перехожу в другое представление или скрываю приложение в фоновом режиме, а затем возвращаю его обратно. В общем, я делаю текстовое представление, затем у меня есть слушатель, основанный на библиотеке asmack (XMPP). Когда я получаю сообщение, я добавляю его в текстовое представление, но я могу видеть его, только переходя в другое представление и возвращаясь назад.

    tv = (TextView)findViewById(R.id.textwindow);

chat = xmpp.getChatManager().createChat(contactid, new MessageListener() {
                public void processMessage(Chat chat, Message message) {                  
                   System.out.println("Reciveved:"+ message);
                 tv.append("From:"+chat.getParticipant()+"\n"+message.getBody()+"\n");

                }                                       
                    }
            );;

1 Ответ

4 голосов
/ 26 мая 2011

Вы можете принудительно выполнить перерисовку, вызвав метод invalidate () для View или содержащего его ViewGroup. Таким образом, в приведенном выше коде вы можете изменить метод processMessage () следующим образом:

public void processMessage(Chat chat, Message message) {                  
  System.out.println("Reciveved:"+ message);
  tv.append("From:"+chat.getParticipant()+"\n"+message.getBody()+"\n");
  tv.invalidate();         
}

Возможно, вы захотите взглянуть на соответствующий вопрос, на который дан ответ здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...