上一篇文章中谈到之前的代码中有一个问题。http://blog.csdn.net/benw1988/article/details/6871244
“程序本身还存在问题,checkbox在点击修改了状态之后,缩小组,在展开组,checkbox的状态会还原。
这是因为,在点击展开时,会重新调用getChildView函数,于是子列表的中的数据重新初始化了。所以数据就还原了。
因此,这个位置的代码还需要修改。才能满足要求。”
这一次修改之后,解决了这个问题,当然对源代码进行了一些修改。
在ExpandableListActivity中的onChildClick事件中进行了部分操作。
首先得到在Adapter中标记的Checkbox。(View中的setTag(Onbect)表示给View添加一个格外的数据,以后可以用getTag()将这个数据取出来。)
然后设置Checkbox点击。
然后再修改adapter中的ChildData也就是子列表里数据。所以,相应的在Adapter中也进行了修改:
updateChildData函数如下:
因为使用的是Map,不能直接修改里面的数据,所以先获取Map中childCheckBox里面的值
然后删除这个映射,根据原来的这个值,重新添加一个新的映射进去。
为了可以让Activity中的onChildClick事件得到响应,我们需要将Checkbox的焦点去掉。
在childs.xml的CheckBox中加入三个属性:
这样之后,就可以解决上面说的那个问题。
layout/main.xml
layout/groups.xml
layout/childs.xml
主类:ExpandableListViewActivity.java
Adapter:MyExpandableListViewAdapter.java
这里就不上图了。效果是一样的。
分享到:
相关推荐
Android之ExpandableListView控件的使用
记录了Android开发的学习历程,本demo为可拓展的列表控件ExpandableListView的使用方法,并含有要点整理文档。
ExpandableListView嵌套GridView的实现,并且手动自定义gridview已适应expandableListView
android中ExpandableListView嵌套GridView的使用
Android 下拉刷新ExpandableListView。做了几个分组好友列表。是一些数组数据加进去测试的。可以一看。
创建ExpandableListView并使用BaseExpandableListAdapter派生类填充它
android ExpandableListView三级菜单的使用,多级菜单下拉与隐藏,ExpandableListView的简单使用
Android之ExpandableListView笔记
基于Android中的ExpandableListView开发示例, 应用list集合类型
Android ListView和ExpandableListView的侧滑删除操作 实现了ListView和ExpandableListView的左滑出现删除的功能。能在实体机和虚拟机上运行,无广告,实现效果和截图一样,但点击expand按钮,在地点进行侧滑时会...
NULL 博文链接:https://geyubin.iteye.com/blog/1187831
android--ExpandableListView实例
CommentWithReplyView-master 基于ExpandableListView实现评论和回复的功能。 > 说明 ...处理了NestedScrollView、ExpandableListView和CoordinatorLayout的嵌套问题 点击某条评论,即可@ta进行回复
android listview,ExpandableListView实现单选,多选,全选,edittext实现批量输入
本demo实现功能为:Expandablelistview子项checkBox先获取已选择状态,在次过程中可修改子项选择,最终提交选择子类的项,并打印相关数据
ExpandableListView嵌套GridView的实现,
android ExpandableListView 四级树形目录 可无限延伸。
android ExpandableListView简单例子