文档章节

listView adapter 的java.lang.IllegalStateException

Jonson
 Jonson
发布于 2016/05/16 17:56
字数 179
阅读 28
收藏 0
点赞 2
评论 0

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. Make sure your adapter calls notifyDataSetChanged() when its content changes. [in ListView(16908298, class qiso.czc.customview.czc_version10.PullToRefreshListView$InternalListViewSDK9) with Adapter(class android.widget.HeaderViewListAdapter)]

因为我在getCount里面定义了 goodeses.clear 搞到listView一下子访问的getCount出现了数目不一致出错.  百度上查了也说Adapter数据更新后,没有及时使用notifyDataSetChanged()方法通知UI,导致出现数据不一致而报错

 


    @Override
    public int getCount() {
        if(dataList == null || dataList.isEmpty()) {
            goodses.clear();
            return 0;
        }



        for (CollectionGoods collectionGoods : dataList){
            if(collectionGoods.goods!=null)
            goodses.add(collectionGoods.goods);
        }


        return goodses.size();
    }

 

换成 以下这样就没问题了

 if(dataList == null || dataList.isEmpty()) {
           
            return 0;
        }


        goodses.clear();
        for (CollectionGoods collectionGoods : dataList){
            if(collectionGoods.goods!=null)
            goodses.add(collectionGoods.goods);
        }


        return goodses.size();

 

 

© 著作权归作者所有

共有 人打赏支持
Jonson
粉丝 21
博文 131
码字总数 17942
作品 0
肇庆
解决listview出现线程更新错误问题

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......

MrLovelyCbb ⋅ 2011/12/09 ⋅ 1

《每日一剂》适配器刷新报错adapter.notifyDataSetChanged()解决

在使用ListView过程中,有时会出现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 ......

王先森oO ⋅ 05/29 ⋅ 0

ListView setAdapter has already been called 异常

本文参考:http://blog.csdn.net/androiddevelop/article/details/8474939 异常提示:Java.lang.IllegalStateException: Cannot add header view to list -- setAdapter has already been ca......

qq_32059827 ⋅ 2017/07/12 ⋅ 0

自己做项目中遇到的一些常见问题及解决方法

1) 数据来自于服务器和数据库, 可能出现FC问题 日志: java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sur......

胡文城 ⋅ 2014/05/10 ⋅ 0

listview点击后退出程序,请问该如何解决!

05-16 15:36:53.518 3510-3510/org.opensource.code.today E/AndroidRuntime: FATAL EXCEPTION: main java.lang.IllegalStateException: The content of the adapter has changed but ListVi......

极客开源灬紫易风语 ⋅ 2016/05/16 ⋅ 0

ListView嵌套ListView的数据处理更新问题

有个需求需要用到listview嵌套listview,数据加载显示完成后,点击子listview的item时,报错:log如下 java.lang.IllegalStateException: The content of the adapter has changed but List...

天堂的键盘 ⋅ 2016/05/18 ⋅ 0

如何有效的排查和解决 ListView的java.lang.IllegalStateException的问题

如题,目前开发的软件在每天的crash日志中经常有3到4例这种crash,并且有经验的都知道这个crash从日志是无法精确定位的,只是提示 “The content of the adapter has changed but ListView d...

soso_fy ⋅ 2012/06/01 ⋅ 1

Fragment中嵌入两个listview,从该fragment切换另外的fragment时闪退

初学者,请各位大神指点 //从该fragment切出时闪退 public class MainBottomMe extends Fragment { private List meListViewperset = new ArrayList<>(); / private List meListViewsetting......

jeffblink ⋅ 2017/06/12 ⋅ 0

Android listview addHeaderView 和 addFooterView 详解

addHeaderView()方法:主要是向listView的头部添加布局 addFooterView()方法:主要是向listView的底部添加布局 需要注意的是添加布局的时候应该添加从父容器开始添加,而不能直接添加父容器中...

程序袁_绪龙 ⋅ 2015/08/05 ⋅ 2

android listview addHeaderView和addFooterView的注意事项

今天在做项目的时候用了自定义listview以及自定义的item、adapter。现在把其中需要注意的地方记录下来: 1、item内如果有button等控件时,在监听listview的onitemclick事件时,焦点会被item内...

等待流星 ⋅ 2014/03/14 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

从 Confluence 5.3 及其早期版本中恢复空间

如果你需要从 Confluence 5.3 及其早期版本中的导出文件恢复到晚于 Confluence 5.3 的 Confluence 中的话。你可以使用临时的 Confluence 空间安装,然后将这个 Confluence 安装实例升级到你现...

honeymose ⋅ 今天 ⋅ 0

Java8新增的DateTimeFormatter与SimpleDateFormat的区别

两者最大的区别是,Java8的DateTimeFormatter也是线程安全的,而SimpleDateFormat并不是线程安全。 在并发环境下使用SimpleDateFormat 为了能够在多线程环境下使用SimpleDateFormat,有这三种...

人觉非常君 ⋅ 今天 ⋅ 0

多线程如何控制执行顺序

线程的生命周期说明: 当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态,在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、...

MarinJ_Shao ⋅ 今天 ⋅ 0

用ZBLOG2.3博客写读书笔记网站能创造今日头条的辉煌吗?

最近两年,著名的自媒体网站今日头条可以说是火得一塌糊涂,虽然从目前来看也遇到了一点瓶颈,毕竟发展到了一定的规模,继续增长就更加难了,但如今的今日头条规模和流量已经非常大了。 我们...

原创小博客 ⋅ 今天 ⋅ 0

MyBatis四大核心概念

本文讲解 MyBatis 四大核心概念(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)。 MyBatis 作为互联网数据库映射工具界的“上古神器”,训有四大“神兽”,谓之:Sql...

waylau ⋅ 今天 ⋅ 0

以太坊java开发包web3j简介

web3j(org.web3j)是Java版本的以太坊JSON RPC接口协议封装实现,如果需要将你的Java应用或安卓应用接入以太坊,或者希望用java开发一个钱包应用,那么用web3j就对了。 web3j的功能相当完整...

汇智网教程 ⋅ 今天 ⋅ 0

2个线程交替打印100以内的数字

重点提示: 线程的本质上只是一个壳子,真正的逻辑其实在“竞态条件”中。 举个例子,比如本题中的打印,那么在竞态条件中,我只需要一个方法即可; 假如我的需求是2个线程,一个+1,一个-1,...

Germmy ⋅ 今天 ⋅ 0

Django第一期

安装Django 去https://www.djangoproject.com/download/ 下载最新版的Django,然后解压放到Anaconda\Lib\site-packages目录下,然后cmd进入此目录,输入安装命令: python setup.py install ...

大不了敲一辈子代码 ⋅ 今天 ⋅ 0

Springboot2 之 Spring Data Redis 实现消息队列——发布/订阅模式

一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式,这里利用redis消息“发布/订阅”来简单实现订阅者模式。 实现之前先过过 redis 发布订阅的一些基础概念和操...

Simonton ⋅ 今天 ⋅ 0

error:Could not find gradle

一.更新Android Studio后打开Project,报如下错误: Error: Could not find com.android.tools.build:gradle:2.2.1. Searched in the following locations: file:/D:/software/android/andro......

Yao--靠自己 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部