我遇到了一个问题,非常奇怪。
我清除了适配器的数据源,然后调用NotifyDatasetChanged(),显示空视图。但是,当我使用runnable重新填充数据源时,然后调用NotifydatasetChanged(),UI不会更改,当我点击屏幕时,数据将会显示。
private void func(){
clearData();
adapter.NotifyDatasetChanged();
call runnable();
}
runnable(){
repopulateData();
sendMessageToHandler();
}
mHandler(){
adapter.NotifyDatasetChanged();
}
答案 0 :(得分:0)
如果adapter.notifyDataSetChanged()不起作用,则必须在UI线程中调用它。
这就是您的数据由Thread添加或修改的原因。
因此,您必须在UI线程中调用notifyDataSetChanged()。
以下代码可以为您提供帮助。
runOnUiThread(new Runnable() {
@Override
public void run() {
adapter.notifyDataSetChanged();
}
});