本例中,对ExpandableListView中的数据进行了封装,分为两个JavaBean,一个为Group类表示组信息,一个Child类表示该组下子列表信息:

Group:

public class Group {private String groupName;//分组名private List<Child> childList;//该分组写子列表public String getGroupName() {return groupName;}public void setGroupName(String groupName) {this.groupName = groupName;}public List<Child> getChildList() {return childList;}public void setChildList(List<Child> childList) {this.childList = childList;}}

Child:

public class Child implements Serializable{private String username;//用户名private String headphoto;//用户头像private String mood;//心情private String online_status;//在线状态public String getMood() {return mood;}public void setMood(String mood) {this.mood = mood;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;
}public String getOnline_status() {return online_status;}public void setOnline_status(String online_status) {this.online_status = online_status;}public String getHeadphoto() {return headphoto;}public void setHeadphoto(String headphoto) {this.headphoto = headphoto;}

ExpandableListView则用到了一个开源控件:IphoneTreeView继承自ExpandableListView,很好的实现了类似QQ好友列表的展现形式,只是需要在样式上做些更改,上图:

本例中也实现了类似qq好友在线情如在线好友头像为亮色,非在线好友头像为暗色(设置透明度即可),以及在线好友占总好友数目比例(可根据Child中的在线状态属性设定,值为1表示在线,为0表示非在线),另外也实现了向上滑动时组别悬浮即停留在顶部的功能。使用时,只需要传入一个List<Group>即可,我在这里是模拟了一些数据,正常情况下当然要从服务端接收数据:

private void initData() {listGroup=new ArrayList<Group>();//第一组Group group=new Group();group.setGroupName("我的好友");List<Child> listChild=new ArrayList<Child>();for(int i=0;i<10;i++){Child child=new Child();child.setUsername("我的好友"+i);child.setHeadphoto("http://d.hiphotos.baidu.com/zhidao/pic/item/562c11dfa9ec8a13e028c4c0f603918fa0ecc0e4.jpg");child.setMood("今天心情不错哈~");if(i<3)child.setOnline_status("1");elsechild.setOnline_status("0");listChild.add(child);}group.setChildList(listChild);listGroup.add(group);//第二组group=new Group();group.setGroupName("我的同学");listChild=new ArrayList<Child>();for(int i=0;i<20;i++){Child child=new Child();child.setUsername("我的同学"+i);child.setHeadphoto("http://wenwen.soso.com/p/20090901/20090901120135-1666292770.jpg");child.setMood("今天心情不错哈~");if(i<3)child.setOnline_status("1");elsechild.setOnline_status("0");listChild.add(child);}group.setChildList(listChild);listGroup.add(group);//第三组group=new Group();group.setGroupName("我的朋友");listChild=new ArrayList<Child>();for(int i=0;i<30;i++){Child child=new Child();child.setUsername("我的朋友"+i);child.setHeadphoto("http://img.xiaba.cvimage.cn/4d908de84538f31e2dbe0a00.jpg");child.setMood("今天心情不错哈~");if(i<4)child.setOnline_status("1");elsechild.setOnline_status("0");listChild.add(child);}group.setChildList(listChild);listGroup.add(group);mExpAdapter = new ConstactAdapter(this, listGroup, mIphoneTreeView);mIphoneTreeView.setAdapter(mExpAdapter);}

另外,加载头像使用的是开源控件afinal,对afinal不了解的可以查看前面的几篇博客中有介绍,好了,具体可以下载demo做详细研究:

下载地址:http://download.csdn.net/detail/baiyuliang2013/8640695

ExpandableListView仿QQ好友列表相关推荐

  1. android 仿qq好友动态,Android UI仿QQ好友列表分组悬浮效果

    本文实例为大家分享了Android UI仿QQ好友列表分组悬浮效果的具体代码,供大家参考,具体内容如下 楼主是在平板上測试的.图片略微有点大,大家看看效果就好 接下来贴源代码: PinnedHeade ...

  2. android 仿qq好友列表分组效果及联系人分组效果

     历史记录仿QQ好友列表的动态效果 以及联系人的分组效果 QQ朋友分组的功能做的不错,大家都很认可,那么到底他的分组并且滑动的时候,标题能停留在顶部是如何实现的呢?今天从网上搜索了一下资料,自己运行了 ...

  3. iOS之仿QQ好友列表展开收缩效果的实现

    使用UICollectionView实现 思路 很明显整体它是一个列表,它的分组是一个列表,它里面的好友列表也是一个列表,所以就可以使用组头来设置分组列表,使用cell设置好友列表: 当点击组头的时候 ...

  4. html仿qq最小化怎么实现,JS仿QQ好友列表展开、收缩功能(第一篇)

    JS仿QQ好友列表展开.收缩功能(第一篇) 发布时间:2020-10-17 14:20:03 来源:脚本之家 阅读:96 作者:erdouzhang 效果图如下所示: html: 我的好友 张三 李四 ...

  5. 仿QQ好友列表,QListWidget!

    仿QQ好友列表, 设计逻辑: 设计qqItem类,再添加到widget中: 设计时布局等可以直接在ui中设计:内容设计通过代码实现: qqItem.cpp #include "qqitem. ...

  6. qq列表展开多个html代码,JS仿QQ好友列表展开、收缩功能(第二篇)

    在上篇的基础上继续完善,点击一个li元素,其他li元素上的类名清除掉. 效果图如下所示: js: window.onload = function(){ var list = document.get ...

  7. 仿QQ好友列表分组折叠效果

    最近要一个类似QQ好友列表分组折叠效果,经过网友提醒应该使用ExpandableListView,因为其就集成了这个功能,我到网上随便找了文章一看,果然如此,因为工作需要和兴趣的推动,下班做完事后决定 ...

  8. java如何实现qq分组_Android仿QQ好友列表分组实现增删改及持久化

    Android自带的控件ExpandableListView实现了分组列表功能,本案例在此基础上进行优化,为此控件添加增删改分组及子项的功能,以及列表数据的持久化. Demo实现效果: GroupLi ...

  9. Android仿QQ好友列表分组实现增删改及持久化

    Android自带的控件ExpandableListView实现了分组列表功能,本案例在此基础上进行优化,为此控件添加增删改分组及子项的功能,以及列表数据的持久化. Demo实现效果:     Dem ...

最新文章

  1. igbinary vs serialize vs json_encode
  2. Escape字符总结
  3. linux下用ntp对时
  4. 接收list参数_what?你竟然不知道C#中的方法及参数的类型解析!那还不快来瞅瞅...
  5. knx智能照明控制系统电路图_智能照明控制系统应用效果
  6. python 版本控制及django,git的使用
  7. java同步通信_java-线程-线程同步通信技术
  8. 【拯救赵明】UTM解决网络安全大问题
  9. python sns可视化小技巧(纪录所得)
  10. Android 语言码_国家码
  11. Windows无法解压文件-potentially harmful
  12. cmd模式下用cd命令进入其他盘或者文件夹
  13. 中英文常用标点符号统一清洗为英文格式
  14. excel实现join功能
  15. 软件工程——四则运算3(C#)
  16. 让你在[三分钟自我介绍]中突出自我
  17. oracle 查看表空间使用情况
  18. 功略三国志9加强版战略刘备篇
  19. hihocoder 1246 王胖浩与环
  20. [No00004E]千万不要“拼命”工作——写在滴滴总裁柳青患癌症之后

热门文章

  1. 员工绩效考核计算机二级考试题解析,绩效管理考试试题及答案解析.doc
  2. 曾经的Borland英杰
  3. select、poll、epoll的比较(转自阿笨猫的窝)
  4. 利用系统自带命令杀毒——手动杀毒
  5. 2019 CSDN 人气最高博客排名榜,人气最高的前十博主
  6. 玩转Android Framework启动篇
  7. Matlab中一维和二维滤波函数及其典型用法【随时更新】
  8. Excel无需取消隐藏直接就可以删除隐藏的工作表
  9. mysql复制库目录结构_利用拷贝data目录的方式进行迁移mysql5.7数据库
  10. 软件著作权申请流程(更适合在校大学生的申请攻略)