ExpandableListView的适配器实现分类页面

package com.example.jingdong.ui.adapter;

import android.content.Context;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.PointerIcon;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.TextView;

import com.example.jingdong.R;
import com.example.jingdong.bean.ChildCataBean;

import java.util.List;

public class ElvAdapter extends BaseExpandableListAdapter{

    private List<String> grouplist;
    private List<List<ChildCataBean.DataBean.ListBean>> childlist;
    private Context context;
    private final LayoutInflater inflater;

    public ElvAdapter(List<String> grouplist, List<List<ChildCataBean.DataBean.ListBean>> childlist, Context context) {
        this.grouplist = grouplist;
        this.childlist = childlist;
        this.context = context;
        inflater = LayoutInflater.from(context);
    }

    @Override
    public int getGroupCount() {
        return grouplist.size();
    }

    @Override
    public int getChildrenCount(int groupPosition) {
        return 1;
    }

    @Override
    public Object getGroup(int groupPosition) {
        return grouplist.get(groupPosition);
    }

    @Override
    public Object getChild(int groupPosition, int childPosition) {
        return childlist.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 convertView, ViewGroup parent) {
        GroupViewHolder groupViewHolder;
        if (convertView==null){
            groupViewHolder=new GroupViewHolder();
            convertView=inflater.inflate(R.layout.elv_group,null);
            groupViewHolder.tv_elv=convertView.findViewById(R.id.tv_elv);
            convertView.setTag(groupViewHolder);
        }else {
            groupViewHolder= (GroupViewHolder) convertView.getTag();
        }
        groupViewHolder.tv_elv.setText(grouplist.get(groupPosition));
        return convertView;
    }

    @Override
    public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
        ChildViewHolder childViewHolder;
        if (convertView==null){
            convertView=inflater.inflate(R.layout.elv_child,null);
            childViewHolder=new ChildViewHolder();
            childViewHolder.rv_elv=convertView.findViewById(R.id.rv_elv);
            convertView.setTag(childViewHolder);
        }else {
            childViewHolder= (ChildViewHolder) convertView.getTag();
        }
        //得到数据
        List<ChildCataBean.DataBean.ListBean> listBeans = childlist.get(groupPosition);
        childViewHolder.rv_elv.setLayoutManager(new GridLayoutManager(context,3));
        //创建适配器
        ElvRvAdapter elvRvAdapter = new ElvRvAdapter(listBeans, context);
        childViewHolder.rv_elv.setAdapter(elvRvAdapter);
        return convertView;
    }

    @Override
    public boolean isChildSelectable(int groupPosition, int childPosition) {
        return false;
    }

    class GroupViewHolder{
        TextView tv_elv;
    }
    class ChildViewHolder{
        RecyclerView rv_elv;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值