“适配器的内容已更改,但ListView未收到通知”列表视图上的错误

时间:2015-04-10 11:09:14

标签: java android multithreading listview android-listview

此错误经常显示“适配器的内容已更改,但ListView未收到通知。请确保未从后台线程修改适配器的内容,但仅从UI线程修改。 “ 使用NewsList从API获取JSON以及其他图片和广告。

class LongOperation extends AsyncTask<String, Void, String> {
    protected void onPreExecute() {

    }

    protected String doInBackground(String... params) {
        try {


        AdSpotList.add(sched);
        Image_view_List.add(sched);
        NewsList.add(sched);

        handler.sendEmptyMessage(1);

        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    protected void onPostExecute(String result) {


    }
}
Handler handler = new Handler() {

    public void handleMessage(Message msg) {

        if (msg.what == 1) {
                if (NewsList.size() != 0) {

                    if (NewsList.size() <= 5) {

                        adapter = new CustomAdapter(getActivity(),
                                Image_view_List, NewsList, AdSpotList, res);

                        lv_daily_summary.setAdapter(adapter);

                    } else { 
                        getActivity().runOnUiThread(new Runnable() {
                            public void run() {
                                lv_daily_summary.invalidateViews();
                                adapter.notifyDataSetChanged(); 
                            }
                        });

                    }
                }
            }
    }
};

这个完整的页面位于片段上。

0 个答案:

没有答案