除非已旋转设备,否则notifyDatasetChanged在Gridview上不起作用

时间:2012-08-09 06:03:28

标签: android android-arrayadapter android-gridview

这真是一个奇怪的问题。它的基本要点是标题所说的。我有一个适配器,我正在更新并调用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”是我的GridViewAdapterHelper().update是我在这里找到的方法,用于清除适配器并添加{{的所有结果1}}它,所以它应该正确更新。

请记住,此代码在设备旋转后有效。现在很困惑,任何见解都会受到赞赏。提前谢谢。

1 个答案:

答案 0 :(得分:0)

使用调试器并逐步执行代码以检查实际发生的情况。

很高兴你发现了问题......现在你可以放弃AdapterHelper这个浪费的课程。