Android Listview不会自动更新自身
每次我的activty收到来自某个TCP侦听线程的消息时,它都会这样做Android Listview不会自动更新自身,android,multithreading,user-interface,adapter,Android,Multithreading,User Interface,Adapter,每次我的activty收到来自某个TCP侦听线程的消息时,它都会这样做 mLstAdpChatScreen.add(line); updateUI(); private void updateUI() { runOnUiThread(new Runnable() { public void run() { mLstAdpChatScreen.notifyDataSetChanged(); m
mLstAdpChatScreen.add(line);
updateUI();
private void updateUI()
{
runOnUiThread(new Runnable()
{
public void run()
{
mLstAdpChatScreen.notifyDataSetChanged();
mLstAdpChatScreen.notifyDataSetInvalidated();
mLstVwChatScreen.requestLayout();
mLstVwChatScreen.invalidate();
}
});
}
虽然这种方法适用于我的大多数listview,并且它们确实得到了更新,但对于某些listview却不适用。我一定错过了什么:-
谢谢这应该适用于大多数情况,但是我在尝试从数据库更新listview时遇到了相同的问题。我调用adapter.notifyDataSetChanged;也一样,但是listview根本没有更新,尽管我可以确认数据已经更改,ArrayList的大小也增加了 最后,我在自定义适配器中实现了一个方法,该方法从BaseAdapter扩展到notifyDataSetChanged,如
public class MyAdapter extends BaseAdapter{
public void updateData(){
this.notifyDataSetChanged();
}
}
然后在活动中,我只调用adapter.updateData。这对我很有用。非常奇怪。事实上,在我解决了其他一些问题之后,这就成功了