Android Listview不会自动更新自身

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

每次我的activty收到来自某个TCP侦听线程的消息时,它都会这样做

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。这对我很有用。非常奇怪。

事实上,在我解决了其他一些问题之后,这就成功了