0

AmazingListViewでアイテムを選択すると、以下のエラーが発生します 。AsyncTask (inBackround()) を介してデータをロードし、ロードされる 20 個のアイテムとメソッド onPostExecute ごとに adapter.notifyDataSetChanged() を呼び出しています。リストは問題なくロードされ、リストのロード後にアイテムを選択しても問題はありません...リストのロード中にアイテムを選択した場合にのみ、このエラーが発生します。AmzingListView here で開かれている問題がありますが、どちらのソリューションも役に立ちませんでした。どんなアイデアでも適用されます。

エラー:

 java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. [in ListView(2131034170, class com.foound.widget.AmazingListView) with Adapter(class android.widget.HeaderViewListAdapter)]

コード:

private ArrayList<object> list;


private class AsyncTask extends AsyncTask<Void, object, Void>
{

    @Override
    protected void onPreExecute()
    {

                    list = populatList();

        super.onPreExecute();
    }

    @Override
    protected Void doInBackground(Void... urls)
    {
                   Log.i("CallLogActivity", "CallLog is Loading");
        for (int i = 0; i < list.size(); i++)
                {

                    String str = getString();
                    boolean bool = getBoolean();
                    Object c = new Object(str,bool);
                    publishProgress(c);
                }

        //Doing Work Here!!

        return null;
    }

    @Override
    protected void onPostExecute(Void result)
    {
            adapter.notifyDataSetChanged();
    }

    @Override
    protected void onProgressUpdate(object... object)
    {           
        count++
                    updatelist(object);
        if (adapter != null)
        {
            if (count > 20)
            {
                adapter.notifyDataSetChanged();         
                count = 0;
            }
        }
        super.onProgressUpdate(object);
    }
}
4

1 に答える 1

1

私の問題は adapter.notifyDataSetChanged(); を呼び出していたことが判明しました。20回の変更後のみ。私は adapter.notifyDataSetChanged(); する必要があります。すべての変更の後.... ここで見つけました

于 2013-06-26T11:39:07.647 に答える