在开发 Android APP 的时候,难免会需要实现二级列表的情况,而在自己的项目中使用的列表是ExpandableListView

如若转发标明转载处:https://mp.csdn.net/postedit/81059332

public class ErAdapter extends BaseExpandableListAdapter {List<MBean.BodyBean.ResultBean> list;

    Context context;

    public ErAdapter(List<MBean.BodyBean.ResultBean> list, Context context) {this.list = list;
        this.context = context;
    }//一级列表的个数
    @Override
    public int getGroupCount() {return list.size();
    }//二级列表的个数
    @Override
    public int getChildrenCount(int groupPosition) {return list.get(groupPosition).getChildren().size();
    }//一级列表的对象
    @Override
    public Object getGroup(int groupPosition) {return list.get(groupPosition);
    }//二级列表的对象
    @Override
    public Object getChild(int groupPosition, int childPosition) {return list.get(groupPosition).getChildren().get(childPosition);
    }//一级列表对应的索引
    @Override
    public long getGroupId(int groupPosition) {return groupPosition;
    }//二级列表对应的索引
    @Override
    public long getChildId(int groupPosition, int childPosition) {return childPosition;
    }//每个item是否固定
    @Override
    public boolean hasStableIds() {return true;
    }//填充以及列表
    @Override
    public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {GroupHolder holder;
        if (convertView == null) {convertView= LayoutInflater.from(context).inflate(R.layout.zu,null);
            holder=new GroupHolder();
            holder.name=convertView.findViewById(R.id.name);
            convertView.setTag(holder);
        }else {holder= (GroupHolder) convertView.getTag();
        }holder.name.setText(list.get(groupPosition).getName());
        return convertView;
    }//填充二级列表
    @Override
    public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {ChildHolder holder;
        if (convertView == null) {convertView= LayoutInflater.from(context).inflate(R.layout.lie,null);
            holder=new ChildHolder();
            holder.name=convertView.findViewById(R.id.name);
            holder.time=convertView.findViewById(R.id.time);
            holder.size=convertView.findViewById(R.id.size);
            convertView.setTag(holder);
        }else {holder= (ChildHolder) convertView.getTag();
        }holder.name.setText(list.get(groupPosition).getChildren().get(childPosition).getName());
        int partDuration = list.get(groupPosition).getChildren().get(childPosition).getPartDuration();
        int time = partDuration / 60;
        holder.time.setText(time+"分钟");
        holder.size.setText(list.get(groupPosition).getChildren().get(childPosition).getPartSize()+"M");
        return convertView;
    }//二级列表中每个能否被选中,如果有点击事件一定要设为true
    @Override
    public boolean isChildSelectable(int groupPosition, int childPosition) {return true;
    }class GroupHolder{TextView name;
    }class ChildHolder{TextView name,time,size;
    }
}

二级列表对应的点击事件

ErAdapter erAdapter = new ErAdapter(result, getContext());
ex.setAdapter(erAdapter);
ex.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {@Override
    public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {callBack.listenter(groupPosition, childPosition);
        return true;
    }
});

Android 泽宇二级列表相关推荐

  1. android购物车栏,Android怎么实现二级列表购物车功能

    Android怎么实现二级列表购物车功能 发布时间:2021-04-16 12:45:40 来源:亿速云 阅读:61 作者:小新 小编给大家分享一下Android怎么实现二级列表购物车功能,希望大家阅 ...

  2. Android实现RecyclerView二级列表可折叠展开选中

    前言 项目里需要实现个可折叠,可展开的的二级列表,首先想到了用ExpandListView去实现,ExpandListView是继承ListView的.由于项目里所有列表都用Recycleview,再 ...

  3. Android开发丶二级列表的联动功能实现

    通常我们在外卖或者商城app会看到竖排二级列表的界面,点击左边列表的分类菜单,右边列表则会显示对应分类下的列表内容,这篇博文将对该功能的实现归纳和整理. 首先看下效果图: 在第一个页面选择最多三个标签 ...

  4. Android 泽宇Glide和Picasso框架之间的区别与应用

    Glide和Picasso是目前Android开发中很流行的图片加载库,Glide库和Picasso库也有极大的相似性,这篇文章就通过对比的方式描述一下这个两个功能强大的优秀库的使用. 一.简介: 1 ...

  5. Android 泽宇节操视频

    今天我要介绍的是节操视频,此框架的小编个人感觉还是很好用的,轻轻松松的几行代码就搞定了 1.所用依赖:implementation 'fm.jiecao:jiecaovideoplayer:5.5' ...

  6. Android 泽宇App广告栏

    在介绍具体的使用说明之前,我们先看一下简单的实现效果: 使用说明 显示一个默认广告弹窗,支持单广告活动.多广告活动,当弹窗显示多广告是默认显示底部小圆圈,当显示单活动时默认不显示底部小圆圈: 默认支持 ...

  7. Android 泽宇_EventBus的使用

    1.EventBus 简介 EventBus是一种用于Android的事件发布-订阅总线,由GreenRobot开发,Gihub地址是:EventBus.它简化了应用程序内各个组件之间进行通信的复杂度 ...

  8. Android 泽宇GC垃圾回收机制算法

    GC是什么? GC的英文全称是:Gabage Collection,翻译成中文就是垃圾回收的意思.在一个对象不再被程序引用时,它所占用的堆空间就可以回收,以便于分配给新的对象使用. 那我们在了解回收机 ...

  9. Android 泽宇三种底部导航栏

    compile 'com.flyco.tablayout:FlycoTabLayout_Lib:2.0.8@aar'//底部导航 <com.flyco.tablayout.CommonTabLa ...

最新文章

  1. 远程控制virtual box虚拟机系统的三种方式
  2. 对人脑而言,阅读计算机代码和阅读语言有何不同?
  3. 中国工程院《全球工程前沿2020》报告在京发布
  4. 【290】Python 函数
  5. springboot(1)使用SpringBoot基础HTTP接口GET|POST|DELETE|PUT请求
  6. android有错.怎么办
  7. SAP UI5和Angularjs事件处理机制的实现比较
  8. 如果张东升是个程序员,你还有机会吗?
  9. 十六、Python操作excel(.xlsx)封装类MyPyExce
  10. dreamweaver 正则表达式为属性值加上双引号_Python正则表达式(一)
  11. 【java】java 使用 jmap 工具 DebuggerException
  12. 将JSON对象中的某个字段进行分组和排序(java实现)
  13. linux shell中$0,$?,$!等的特殊用法
  14. awk去除行首行尾空格
  15. zbbz的lisp_学习LISP语言的体会
  16. python处理工资_python的工资
  17. windows server 2008 远程终端激活
  18. swift 的水波动画或雷达动画效果
  19. 项目导入阿里字体图标库
  20. 大一寒假集训(11)(12)---map,set

热门文章

  1. 大轴纸怎么上机器人_幼儿园大班科学——“制作机器人”系列活动策划及分析...
  2. 08和8的区别,二进制、八进制、十进制、十六进制。
  3. matlab中采样函数
  4. 新计算机如何用u盘启动,处理新电脑怎么使用u盘装系统
  5. 如何通过一封邮件,找到真正的发件人?
  6. python培训深圳-深圳Python培训班哪个好
  7. ( 转载)改变人类历史的17大数学方程
  8. Java方法重载实现原理及代码实例
  9. 什么是环境监测?基本概念及相关设备介绍
  10. Python重试库Retrying和Tenacity