1

这真是一个奇怪的问题。它的基本要点是标题所说的。我有一个适配器,我正在更新并调用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" 是 my adapter, "gv" 是 myGridView并且AdapterHelper().update是我在这里找到的清除适配器并将所有结果添加arraylist到其中的方法,因此应该正确更新它。

请记住,此代码在设备旋转后有效。现在很困惑,任何见解将不胜感激。提前致谢。

4

1 回答 1

0

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

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

于 2012-08-09T07:31:50.320 回答