NotifyDataSetChanged不起作用

时间:2014-04-07 01:06:18

标签: android

我遇到了一个问题,非常奇怪。

我清除了适配器的数据源,然后调用NotifyDatasetChanged(),显示空视图。但是,当我使用runnable重新填充数据源时,然后调用NotifydatasetChanged(),UI不会更改,当我点击屏幕时,数据将会显示。

private void func(){
    clearData();

    adapter.NotifyDatasetChanged();

    call runnable();
}
runnable(){
    repopulateData();

    sendMessageToHandler();
}
mHandler(){
    adapter.NotifyDatasetChanged();
}

1 个答案:

答案 0 :(得分:0)

如果adapter.notifyDataSetChanged()不起作用,则必须在UI线程中调用它。

这就是您的数据由Thread添加或修改的原因。

因此,您必须在UI线程中调用notifyDataSetChanged()。

以下代码可以为您提供帮助。

runOnUiThread(new Runnable() {
    @Override
    public void run() {
        adapter.notifyDataSetChanged();
    }
});