注意点:1)适配器BaseExpandableListAdapter

2)数据源(数组、集合都行)(重点)

/**

* Created by mb on 2014/11/18.

* 二级菜单适配器

*/

public class MyExpandableListAdapter extends BaseExpandableListAdapter {

private Context context;

List groups;//String [] groups = {};

List> childs; //String [] [] childs = {{},{},};

ViewHolder holder;

public MyExpandableListAdapter(Context context, List groups, List> childs) {

this.context = context;

this.groups = groups;

this.childs = childs;

}

@Override

public int getGroupCount() {

return groups.size();

}

@Override

public int getChildrenCount(int groupPosition) {

return childs.get(groupPosition).size();

}

@Override

public Object getGroup(int groupPosition) {

return groups.get(groupPosition);

}

@Override

public Object getChild(int groupPosition, int childPosition) {

return childs.get(groupPosition).get(childPosition);

}

@Override

public long getGroupId(int groupPosition) {

return groupPosition;

}

@Override

public long getChildId(int groupPosition, int childPosition) {

return childPosition;

}

@Override

public boolean hasStableIds() {

return true;

}

@Override

public View getGroupView(int groupPosition, boolean isExpanded, View convertView1, ViewGroup parent) {

//自定义组视图

return convertView1;

}

@Override

public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {

//自定义孩子视图

return convertView;

}

@Override

public boolean isChildSelectable(int groupPosition, int childPosition) {

return true;

}

public static class ViewHolder {

//控件

}

}

事件监听:

myExpandableListAdapter = new MyExpandableListAdapter(context, groups, childs);

expandableListView.setAdapter(myExpandableListAdapter);

expandableListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {

@Override

public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {

int count = myExpandableListAdapter.getChildrenCount(groupPosition);

if (count <= 0) {

activity.showCustomToast("...");

}

return false; // ---此处返回true  点击后不能展开组  具体原因知道的留言

}

});

expandableListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {

@Override

public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {

return false;

}

});

默认展开所有菜单:

for (int i = 0; i < myExpandableListAdapter.getGroupCount(); i++) {

expandableListView.expandGroup(i);

}

android 多级分组,android 二级菜单(类似QQ分组)相关推荐

  1. android RecyclerView一步步打造分组效果、类似QQ分组、折叠菜单、分组效果(一)

    第二篇文章链接: android RecyclerView一步步打造分组效果.类似QQ分组.折叠菜单.分组效果(二) 效果图: 前言 之前看到这种效果如果用recyclerview来实现没有一点思路, ...

  2. android RecyclerView一步步打造分组效果、类似QQ分组、折叠菜单、分组效果(二)

    第一篇链接: android RecyclerView一步步打造分组效果.类似QQ分组.折叠菜单.分组效果(一) 注!已更新代码! 上一篇写了分组效果的初步实现: 这一篇就继续增加分组折叠效果和基类的 ...

  3. Android 自定义RecycleView实现多级树(类似qq分组列表)

    由于工作需要开发一个类似qq分组列表功能,所以就自定义RecycleView来实现功能 效果图: 自定义View: import java.util.ArrayList; import java.ut ...

  4. html仿qq分组,iOS 实现类似QQ分组样式的两种方式

    思路 思路很简单,对模型数据操作或则控制界面显示 先看下json部分数据 "chapterDtoList": [{ "token": null, "i ...

  5. Android 使用BRVAH 实现二级菜单。类似QQ分组

    首先配置什么的.点击这里 代码: 两个类,一个是一级的类,一个是二级的类 直接贴上 package com.mogujie.tt.ui.model;import com.chad.library.ad ...

  6. Android 实现仿QQ分组实现二级菜单展示

    首先展示下要实现的效果 动态查看请看链接https://recordit.co/GHjVH9WMz6 1.首先要定义item,也就是二级展示的item child_item.xml <?xml ...

  7. JAVA开发Android聊天APP,实现了类似QQ、微信的即时通讯功能

    视频学习地址 本内容接上篇文章 我的源码: 码云 github 大加有需要可以下载来参照一下. 文章目录 简介: 问题.报错 与视频中有差别的地方 视频的第十九节 视频的第38节,关于长按删除联系人, ...

  8. 关于expanded一级二级菜单数据的分组排序

    最新再弄关于expandedlistview相关的东西,所以需求是需要对一级菜单根据时间排序,同时二级菜单也需要根据时间排序,距离现在最近的时间显示在最前面. 效果就是如下: --group2  -- ...

  9. Android聊天室背景,安卓实现类似QQ刚换聊天背景的功能

    自己实现了一下,但对于一些手机一设置背景就出现闪退不知道为什么,大体思路就是获得用户选择的uri,然后如果屏幕分辨率小于图片的分辨率就对图片进行下处理,防止OOM.但现在不知道哪里还有问题 启动系统的 ...

最新文章

  1. Linux 下的hiredis的简单安装、测试*(转)
  2. 坚强生活(转)--To 小鱼,妹妹和傻女孩们
  3. MySQL高级配置(二)详细介绍
  4. Codeforces Round #732 (Div. 2) D. AquaMoon and Chess 组合数学 + 找规律
  5. 使用POI转换word doc文件
  6. 一步安装openssh的脚本
  7. python堆结构heapq
  8. linux查看都哪口状态,linux c 查看网口状态
  9. ROS:launch文件的语法规范
  10. 使用php+gmail 发送邮件
  11. FreeSwitch中的会议功能
  12. 开放源代码不得不知的一些事情
  13. Windows的文件目录管理策略
  14. python解决八数码问题_python解决八数码问题
  15. 微型计算机从外观上看可以分为,冯.诺依曼计算机 1.3 计算机系统的组成 计算机系统概述 EDVAC的3个特点:...
  16. Flash鼠绘马蹄莲教程
  17. EXCEL中空白单元格如何快速填充为0
  18. Cisco Visio Stencil 实体图标下载
  19. Excel一键创建班级成绩表模板的操作
  20. 【人工智能】大模型的发展历史

热门文章

  1. 在控制台中实现“单词竞猜”游戏 C# 猜词游戏
  2. 匈牙利算法——最大匹配问题详解
  3. python代码性能分析_Python 性能分析入门指南
  4. C++PrimerPlus学习——第十三章编程练习
  5. linux db2 权限管理,DB2五种管理权限
  6. 阿里云使用idea通过hdfs api来上传文件时出现could only be written to 0 of the 1 minReplication nodes.错误
  7. svn 无线服务器,远程svn服务器
  8. php与eCharts结合,23.安装php和echarts进行结合展示图表
  9. 深度技术win11旗舰稳定版v2021.07
  10. 新萝卜家园windows11 64位官网正版系统v2021.07