适配器的内容已更改,但ListView未收到通知。确保未修改适配器的内容

时间:2018-05-11 19:01:18

标签: java android listview adapter

我有时会遇到此错误

  

适配器的内容已更改,但ListView未收到   通知。确保未修改适配器的内容   来自后台主题

但我不明白,因为我跑到UI线程。如果你有一个想法,那就。

class LoadingProducts extends AsyncTask<Void, Void, Void> {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        loading_indicator.show();
    }

    @Override
    protected void onPostExecute(Void result) {
        super.onPostExecute(result);

        if (isAdded()) {
            getActivity().runOnUiThread(new Runnable() {
                @Override
                public void run() {

                    mAdapter.setData(listProducts);
                    mAdapter.notifyDataSetChanged();

                    loading_indicator.hide();
                }
            });
        }
    }

    @Override
    protected Void doInBackground(Void... params) {
        get_data();
        return null;
    }
}

更新: 此问题在搜索刷新列表中显示

以前的代码onQueryTextChange:

mHandler.postDelayed(new Runnable() {
        @Override
        public void run() {

           if (mQueryStringSearch.length() > 2)
               new LoadingProducts().execute();


        }
    }, 300);

0 个答案:

没有答案