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的

    关注我
  • 相关阅读:
    aria2
    Tomcat Manager Config
    selenium 入门(Java)
    java线上cpu、内存问题排查方法
    Java多线程知识点
    《Java7并发编程实战手册》读书笔记
    《Java并发编程的艺术》读书笔记
    centos7安装mysql
    Linux用户配置文件
    metasploit魔鬼训练营靶机环境搭建(第二章)
  • 原文地址:https://www.cnblogs.com/zengmianhui/p/12634077.html
Copyright © 2011-2022 走看看