1

これは本当に奇妙な問題です。その基本的な要点は、タイトルの内容です。更新して呼び出しているアダプターがありますがnotifyDatasetChanged()、問題は、デバイスを少なくとも1回回転させないと、アダプターが機能しないことです。私の人生では、なぜ回転が起こった後に何が違うのか理解できません。

問題のコードはここにあります:

それを処理する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ここで見つけた方法で、アダプターをクリアし、そのすべての結果をアダプターに追加するarraylistので、適切に更新されているはずです。

このコードは、デバイスが回転した後に機能することを忘れないでください。現在非常に混乱しているので、洞察をいただければ幸いです。前もって感謝します。

4

1 に答える 1

0

デバッガーを使用してコードをステップ実行し、実際に何が起こるかを確認します。

問題を見つけてよかった...AdapterHelperこれで、無駄なクラスを捨てることができます。

于 2012-08-09T07:31:50.320 に答える