正文

首先是最基础的

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

    GPU-Marching-Cubes An Implementation of the Marching Cubes[1] Algorithm Marching Cubes Matlab The St ...

  2. git subtree用法(转)

    git subtree用法 一.使用场景 例如,在项目Game中有一个子目录AI.Game和AI分别是一个独立的git项目,可以分开维护.为了避免直接复制粘贴代码,我们希望Game中的AI子目录与AI ...

  3. java 处理xml格式数据

    1.单个xml文件 package lia.meetlucene; import java.io.*; import javax.xml.parsers.DocumentBuilder; import ...

  4. 为什么java里用常量赋值就相等,用字符串就不等?

    例一: String s0="HF"; String s1=new String("HF"); System.out.println(s0==s1); 输入为什 ...

  5. java语法基础思维导图

  6. 用thinkphp进行微信开发的整体设计思考

    用thinkphp进行微信开发的整体设计思考 http://www.2cto.com/weixin/201504/388423.html 2015-04-09      0个评论       作者:明 ...

  7. JNDI学习总结(一)——JNDI数据源的配置

    一.数据源的由来 在Java开发中,使用JDBC操作数据库的四个步骤如下:   ①加载数据库驱动程序(Class.forName("数据库驱动类");) ②连接数据库(Connec ...

  8. 初学Java语法(笔记)

    2015-12-30

  9. 5 个 Composer 小技巧

    Composer是新一代的PHP依赖管理工具.其介绍和基本用法可以看这篇<Composer PHP依赖管理的新时代>.本文介绍使用Composer的五个小技巧,希望能给你的PHP开发带来方 ...

  10. java 强制转换

    在java中强制类型转换分为基本数据类型和引用数据类型两种,这里我们讨论的后者,也就是引用数据类型的强制类型转换. 在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需 ...