该异常建议我调用notifyDataSetChanged(),但我已经在onPostExecute方法上调用了该方法,如您所见:
Constants.newsDownloaded = true;
TempStorage.downloadedNews = this.items;
this.progress.setVisibility(View.INVISIBLE);
this.downloadMore.setVisibility(View.VISIBLE);
adapter = new NewsListAdapter(context,
inflater, this.items);
if (index <= 26){
listView.setSelection(0);
} else{
listView.setSelection(TempStorage.firstAddedIndex);
}
listView.setAdapter(adapter);
adapter.notifyDataSetChanged();
如您所见,每次调用都会重新创建适配器。我只在Nexus 5上遇到这个问题,其他设备运行完美。
这段代码出了什么问题?
谢谢你的帮助,伙计们!
答案 0 :(得分:1)
我认为你应该删除notifyDataSetChanged行。无论如何,您正在创建一个新的适配器实例,为什么要立即对它进行修改?它有正确的更新数据,因为你有一个新实例。
我曾经在类似的情况下遇到同样的崩溃,更新我在适配器中查询的数据。通过在我的onPostExecute中创建一个新的适配器实例,我摆脱了崩溃。