在做项目中经常要用到ExpandableListView这个组件来对数据进行显示,使用非常方便。其中也提供了很多对ExpandableListView进行各种操作的监听,如下:
可以看到有对Group点击、长按;有对Child单击、长按;还有纯粹的单击、长按等等。并不是我觉得使用这些不方便,而是觉得对于一个新手在不怎么熟悉api的情况下,该如何迅速的找到适合自己用的呢?例如:我在写一个聊天的应用的时候,用的就是ExpandableListView来进行好友的显示,默认分组为weimingming(未命名),在这里我需要对组进行增删改、对好友也要进行一些操作,对于组的增删我放在了Menu里面触发,而对于组的改名,则是长按该group,然后可以进行上下文菜单设置或者通过弹出一个对话框来进行设置;对于好友有移动和一些权限的操作,都是通过长按放在上下文菜单中进行,如果单击别人则跳入聊天界面,如果单击或者长按自己,则显示个人资料。当我不能正确处理上面的关系的时候,我就会对使用哪种监听而不会产生功能重复方面感觉比较混乱。于是通过上网查了些资料发现一种比较好的方式,就是在适配器中产生groupView和childView的时候,分别进行Tag值的设置,如下:
getChildView:
getGroupView:
备注1:这里因为是产生childView,所以这里的group和child位置的值都已经给出,我们只需要把这两个值保存起来,setTag有一个方法里面传入两个参数,第一个为资源文件中的id,这个id必须为资源文件中的id,而且要和groupView中设置的能对应起来,至于是哪一个组件的id无所谓,只要你在用的时候能想起来,通过它得到你想要的位置值就行。第二个就是你要传入的值,包括group和child的位置
备注2:这里因为是产生groupView,所以这里没有child位置的值,只有group的位置,因此我在这里设置Tag的第二个值为-1,表示正在操作的不是child,当我在使用的时候就可以根据这个值是不是-1来判断操作的是不是child了。
下面来看如何操作:
长按ExpandableListView,不通过监听来区分group和child:
分享到:
相关推荐
ExpandableListView 长按和点击处理的两种方法 elv.setOnItemLongClickListener和在子项中直接对view 进行设置
ExpandableListView 长按事件demo
本demo实现功能为:Expandablelistview子项checkBox先获取已选择状态,在次过程中可修改子项选择,最终提交选择子类的项,并打印相关数据
Android学习笔记(二五): 多信息显示-ExpandableListView的使用
Android实现自定义适配器的ExpandableListView示例,准备一级列表中显示的数据:2个一级列表,分别显示"group1"和"group2",准备第一个一级列表中的二级列表数据:两个二级列表,分别显示"childData1"和"childData2",...
ExpandableListView中group和child自定义视图带CheckBox,实现child全选、部分选中功能,同时实现类似邮件群发的用户选择功能,选中的用户在EditText中显示,点击后移除. 更新: 1. ExpandableListView勾选后生成的...
Android之ExpandableListView笔记
android ExpandableListView三级菜单的使用,多级菜单下拉与隐藏,ExpandableListView的简单使用
android ExpandableListView 四级树形目录 可无限延伸。
Android 基于自定义适配器的ExpandableListView源码
修改了checkbox事件处理,多选处理,适用于群发短信,电子邮件
Android ExpandableListView 示例 #android #expandablelistview
android中ExpandableListView嵌套GridView的使用
android ExpandableListView简单例子
CommentWithReplyView-master ... > 说明 ...对评论和回复数据进行了异常处理 material design风格的详情页 处理了NestedScrollView、ExpandableListView和CoordinatorLayout的嵌套问题 点击某条评论,即可@ta进行回复
主要为大家详细介绍了Android ExpandableListView单选以及多选的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
ExpandableListExample:使用ExpandableListView的简单例子
Android之ExpandableListView控件的使用
基于Android中的ExpandableListView开发示例, 应用list集合类型
ExpandableListView实现购物车页面