java - Android TextView 不更新 View

标签 java android textview

所以我有一个 TextView ,当我的监听器获取一些特定数据时,我在其中 tv.append 一些字符串。问题是,只有当我移动到另一个 View 或在后台隐藏应用程序然后将其返回到前面时, TextView 才会更新文本。所以基本上我做了一个 TextView ,然后我有一个基于asmack库(XMPP)的监听器当我收到消息时我将它附加到 TextView ,但我只能通过移动到另一个 View 并返回来看到它。

    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");

                }                                       
                    }
            );;

最佳答案

您可以通过在 View 或其包含的 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

关于java - Android TextView 不更新 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6139997/

相关文章:

android - 具有自定义颜色属性的 TextView 不会在布局预览中呈现

java - 如何修复sqlite在android中多次插入最后一个EditText值

android - TextView 和编辑文本的警告对话框间距问题

android - 如何在 SeekBar 拇指中间添加 TextView?

android - 我怎样才能对特定的 textview 项目进行加粗和着色?

java - java中所有集合背后使用的数据结构

java - 更改 Guice 参数配置

java - @context httpServletRequest 对 jersey 中 post 方法的请求为空

java - Maven是否应该为不同的应用服务器打包不同的WAR?

java - 更改 Vaadin 7 应用程序的根上下文