这真是一个奇怪的问题。它的基本要点是标题所说的。我有一个适配器,我正在更新并调用notifyDatasetChanged()
然而问题是它不起作用,除非设备至少旋转一次。我不能为我的生活弄清楚为什么,在轮换发生后做了什么不同的事情?
有问题的代码在这里:
处理它的ASyncTask ..
protected void onPostExecute(ArrayList<Records> result) {
if (ca == null)
{
ca = new CoverAdapter<Records>(c, R.layout.grid_cover_with_text_item, result);
}
if (gv.getAdapter() == null)
{
gv.setAdapter(ca);
}
else
{
new AdapterHelper().update((CoverAdapter) ca, result);
ca.notifyDataSetChanged;
}
}
“ca”是我的adapter
,“gv”是我的GridView
和AdapterHelper().update
是我在这里找到的方法,用于清除适配器并添加{{的所有结果1}}它,所以它应该正确更新。
请记住,此代码在设备旋转后有效。现在很困惑,任何见解都会受到赞赏。提前谢谢。
答案 0 :(得分:0)
使用调试器并逐步执行代码以检查实际发生的情况。
很高兴你发现了问题......现在你可以放弃AdapterHelper
这个浪费的课程。