Java Android TextView没有';不要更新视图
所以我有一个文本视图,当我的监听器得到一些特定的数据时,我会在其中添加一些字符串。问题是,只有当我移动到另一个视图或在后台隐藏应用程序,然后将其返回到前面时,textview才会更新文本。所以基本上我创建了一个textview,然后我有一个基于asmack library(XMPP)的侦听器,当我收到一个消息时,我将它附加到textview,但我只能通过移动到另一个视图并返回来查看它Java Android TextView没有';不要更新视图,java,android,textview,Java,Android,Textview,所以我有一个文本视图,当我的监听器得到一些特定的数据时,我会在其中添加一些字符串。问题是,只有当我移动到另一个视图或在后台隐藏应用程序,然后将其返回到前面时,textview才会更新文本。所以基本上我创建了一个textview,然后我有一个基于asmack library(XMPP)的侦听器,当我收到一个消息时,我将它附加到textview,但我只能通过移动到另一个视图并返回来查看它 tv = (TextView)findViewById(R.id.textwindow); chat
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");
}
}
);;
可以通过对视图或其包含的视图组调用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();
}
您可能想看看所回答的相关问题 可以通过对视图或其包含的视图组调用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();
}
您可能想看看所回答的相关问题 你能发布一些(相关)代码吗?但请只发布相关部分。你能发布一些(相关)代码吗?但请只发布相关部分。