正文

首先是最基础的

ExpandableListView vList = (ExpandableListView) this.findViewById(R.id.list);
EListAdapter adapter = new EListAdapter(getApplicationContext(), list); //list 是数据源
vList.setAdapter(adapter); //适配器就不写了, 都懂的
class EListAdapter extends BaseExpandableListAdapter {}

一般情况下, ListView是使用notifyDataSetChanged() 更新的

adapter.notifyDataSetChanged();

ExpandableListView 也是ListView, 估计这样是可以的.

可惜现在用的不是ListView, 而是ExpandableListView! 所以报错了0. 0

Java.lang.ClassCastException: Android.widget.ExpandableListConnector

在Google 找了资料, 发现是很多都犯这个错误. 解决方法也蛮简单的!

class EListAdapter extends BaseExpandableListAdapter {
public EListAdapter(Context context, List<T> list) {
this.list = list;
this.context = context;
handler = new Handler(){ @Override
public void handleMessage(Message msg) {
notifyDataSetChanged();
super.handleMessage(msg);
}
};
} public void refresh() {
handler.sendMessage(new Message());
}
}

只要我们调用refresh() 方法就可以使用notifyDataSetChanged() 了.

可是!! 只有GroupView 更新!!

ChildView 没有更新! 惨了....要更新的在ChildView!!

继续靠Google 娘! 大家都提供很多方法, 有一个人说, 直接在list 添加item 再更新就可以了!

我试了一下,没有任何效果.......

查了一查SDK 文档, 发现Group 的伸缩会引起getChildView(int, int, boolean, View, ViewGroup)  的运行!

所以刷新的ChildView 的方法很简单.

只有伸缩一次就可以了! 连Adapter 都不用重写! 简单吧?

vList.collapseGroup(groupPosition);
vList.expandGroup(groupPosition);

Android 关于ExpandableListView刷新的解决办法的更多相关文章

  1. 【转】Android出现“Read-only file system”解决办法

    原文网址:http://www.111cn.net/sj/android/44496.htm 下面介绍一篇Android出现“Read-only file system”解决办法 有碰到这类问题的朋友 ...

  2. 【转】Ubuntu 上编译Android出现cannot find -lstdc++解决办法

    [转]Ubuntu 上编译Android出现cannot find -lstdc++解决办法 在Ubuntu 12.04 x86_64机器上编译Android出现下面错误,是因为找不到32bit的li ...

  3. 同一个ASP.NET页面放置多个UpdatePanel分别刷新的解决办法。.

    原文:同一个ASP.NET页面放置多个UpdatePanel分别刷新的解决办法.. ScriptManager添加EnablePartialRending属性 <asp:ScriptManage ...

  4. (转载)Android出现“Read-only file system”解决办法

    下面介绍一篇Android出现“Read-only file system”解决办法 有碰到这类问题的朋友可参考参考.   Android-出现Read-only file system的解决方法 输 ...

  5. Ubuntu中Android SDK Manager无法更新解决办法

    Ubuntu中Android SDK Manager无法更新解决办法http://hi.baidu.com/petercao2008/item/d7a64441f04668e81e19bc1a

  6. Xamarin Android SDK无法更新的解决办法

    Xamarin Android SDK无法更新的解决办法   Xamarin Android SDK无法更新的解决办法,更新时候,提示警告信息:A folder failed to be moved. ...

  7. android adb devices offline的解决办法

    在做Android开发时经常出现android adb devices offline,解决办法如下: 1 重启adb服务 adb kill-server adb start-server linux ...

  8. android studio 错误汇总以及解决办法

    android studio 错误汇总以及解决办法  参考 https://www.jianshu.com/p/7c7de6562231 问题1. Error:Execution failed for ...

  9. android ANR产生原因和解决办法

    转自http://blog.sina.com.cn/s/blog_618199e60101kvbl.html ANR (Application Not Responding) ANR定义:在Andro ...

随机推荐

  1. 什么是java 键值对

    所谓键值对,你可以查看jdk文档,找MAP接口,它的实现类都是键值对的形式保存数据的 键:就是你存的值的编号值:就是你要存放的数据

  2. mysql的事务处理与锁表

    数据库的事务处理可以保证一组处理结果的正确性.mysql中只有INNODB和BDB引擎的数据表才支持事务处理,对于不支持事务的MyISAM引擎数据库可以使用表锁定的方法来实现相同的功能. mysql的 ...

  3. ProtocalBuffers学习记录

    Google Protocol Buffer 的使用和原理 Google Protocol Buffers 概述 Google Protocol Buffers 入门 Protocol Buffers ...

  4. PHP 设计模式 笔记与总结(9)数据对象映射模式

    [数据对象映射模式] 是将对象和数据存储映射起来,对一个对象的操作会映射为对数据存储的操作.例如在代码中 new 一个对象,使用数据对象映射模式就可以将对象的一些操作比如设置一些属性,就会自动保存到数 ...

  5. iMx280A测试声纹

    1.首先要有声纹识别的动态库,且arm-linux-gcc的版本相同.可以在虚拟机用file 命令来看文件的基本信息,通过file指令,我们得以辨 识该文件的类型. 2.用tftp将库传到开发板的li ...

  6. setattribute兼容

    var spanElement = document.getElementById("mySpan"); spanElement.style.cssText = "fon ...

  7. (转)CAS (4) —— CAS浏览器SSO访问顺序图详解(CAS Web Flow Diagram by Example)

    CAS (4) —— CAS浏览器SSO访问顺序图详解(CAS Web Flow Diagram by Example) tomcat版本: tomcat-8.0.29 jdk版本: jdk1.8.0 ...

  8. nrf51822裸机教程-UART

    art硬件模块通常都有内置的硬件接收buff,比如51822的硬件uart模块图如下 因为通常接收到uart数据时都会做一些处理.比如保存到数据,或者对数据做一些判断之类的. 如果uart的波特率设置 ...

  9. avalon---qunar ued

    http://avalonjs.github.io/ http://ued.qunar.com/ https://github.com/RubyLouvre/avalon 1.前后端分离-- 2.gr ...

  10. 答CsdnBlogger问-关于VR取代安卓的问题

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 安卓未来的发展和命运几何? 现在VR和AR各种火爆,是否安卓能够在洪流中屹立不倒呢? 你好,其实这个 ...