zoukankan      html  css  js  c++  java
  • ListView The content of the adapter has changed but ListView did not receive a notification.

    10-10 04:25:59.813: E/AndroidRuntime(5300): 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(2131427405, class android.widget.ListView) with Adapter(class android.widget.HeaderViewListAdapter)]

    上面这段是我在自定义swipeRefreshLayout里面做上拉加载时报错的;意思大概是adapter的源数据和listView的条目不一样

    在网上查了一些资料,大部分的解决方式是更新数据adapter.notifyDataSetChanged();必须在UI线程中执行,但是我并不是这个问题。

    listView.removeFooterView(loadLayout);

    我的情况是这样的,我在某一情况下,执行listView.removeFooterView(loadLayout);,但是没有及时adapter.notifyDataSetChanged();,所以导致了报错

    有人会问,执行listView.addFooterView(loadLayout);需要 及时adapter.notifyDataSetChanged();吗?其实不需要的,因为listView.addFooterView(loadLayout);需要在setAdapter()方法之前执行。所以在绑定适配器之前是不用通知adapter的

    关注我
  • 相关阅读:
    GoLang中面向对象的三大特性
    Go常用功能总结一阶段
    GO语言基础之并发concurrency
    GO语言基础之error
    GO语言基础之reflect反射
    GO语言基础之interface
    GO语言基础之method
    GO语言基础之struct
    GO语言基础map与函数
    GO语言基础条件、跳转、Array和Slice
  • 原文地址:https://www.cnblogs.com/zengmianhui/p/12634077.html
Copyright © 2011-2022 走看看