二级列表的适配器和监听事件

二级列表的适配器:

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;
    }
});

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值