2011-05-26 83 views
0

所以我有一個textview,當我的偵聽器獲得一些特定的數據時,我會在其中添加一些字符串。問題是,僅當我移動到另一個視圖或在後臺隱藏應用程序,然後將其重新置於前面時,textview纔會更新文本。所以基本上我做了一個textview,然後我有一個基於asmack庫(XMPP)的監聽器當我收到一個messgae時,我將它追加到textview,但我只能通過移動到另一個視圖並返回才能看到它。Android TextView不會更新視圖

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

你能發佈一些(相關的)代碼嗎? – 2011-05-26 14:14:02

+1

但請僅限其相關部分。 – 2011-05-26 14:14:48

+0

添加了一些代碼 – artouiros 2011-05-26 14:57:07

回答

4

您可以通過在視圖或其包含ViewGroup上調用invalidate()方法來強制重繪。因此,在上面的代碼中,你可以修改你而processMessage()方法是這樣的:

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

你可能想看看一個相關的問題回答here

+0

添加了一些代碼 – artouiros 2011-05-26 14:57:14