嵌套Recyclerview

Fragment


public class FragmentLastPresetner extends AppDelegate{
    private RecyclerView leftRecyclerView,rightRecyclerView;
    private LeftAdater leftAdater;
    private RightAdater adater;
    private List<LeftBean.DataBean> data1;

    @Override
    public int getlayoutId() {
        return R.layout.fragment_last;
    }

    @Override
    public void initviews() {
        leftRecyclerView = (RecyclerView)get(R.id.left_recyclerView);
        rightRecyclerView = (RecyclerView)get(R.id.right_recyclerView);

        doHttpleft();
        doHttpright(1);

    }

    private void doHttpleft() {

        new HttpHelper().get("http://www.zhaoapi.cn/product/getCatagory").result(new HttpHelper.Httplistenner() {
            @Override
            public void success(String data) {
                Gson gson = new Gson();
                LeftBean leftBean = gson.fromJson(data, LeftBean.class);
                data1 = leftBean.getData();
                leftAdater.setList(data1);

            }

            @Override
            public void error(String error) {

            }
        });

        leftAdater = new LeftAdater(context);
        LinearLayoutManager manager = new LinearLayoutManager(context);
        manager.setOrientation(LinearLayoutManager.VERTICAL);
        leftRecyclerView.setLayoutManager(manager);
        leftRecyclerView.setAdapter(leftAdater);
        leftAdater.click(new LeftAdater.SetOnclick() {
            @Override
            public void getonclick(int postion) {
                Toast.makeText(context,"id="+postion,Toast.LENGTH_SHORT).show();
                int cid = data1.get(postion).getCid();
                doHttpright(cid);
            }
        });

    }

    private void doHttpright(int cid) {
        adater = new RightAdater(context);
        LinearLayoutManager manager = new LinearLayoutManager(context);
        rightRecyclerView.setLayoutManager(manager);
        rightRecyclerView.setAdapter(adater);
        new HttpHelper().get("http://www.zhaoapi.cn/product/getProductCatagory?cid="+cid).result(new HttpHelper.Httplistenner() {
            @Override
            public void success(String data) {
                Gson gson = new Gson();
                RightBean rightBean = gson.fromJson(data, RightBean.class);
                List<RightBean.DataBean> rightData = rightBean.getData();
                adater.setList(rightData);
            }

            @Override
            public void error(String error) {

            }
        });
    }
    private Context context;
    @Override
    public void getContext(Context context) {
        this.context=context;
    }
}

左侧适配器


public class LeftAdater extends RecyclerView.Adapter<LeftAdater.MyViewHoler> {

    public Context context;

    public LeftAdater(Context context) {
        this.context = context;
    }

    @NonNull
    @Override
    public LeftAdater.MyViewHoler onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = View.inflate(context,R.layout.left_item,null);
        MyViewHoler myViewHoler = new MyViewHoler(view);

        return myViewHoler;
    }

    @Override
    public void onBindViewHolder(@NonNull LeftAdater.MyViewHoler myViewHoler, final int i) {
        myViewHoler.title.setText(list.get(i).getName());
        myViewHoler.title.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                setOnclick.getonclick(i);
            }
        });
    }

    @Override
    public int getItemCount() {
        return list.size();
    }
    private List<LeftBean.DataBean> list=new ArrayList<>();
    public void setList(List<LeftBean.DataBean> list) {
        this.list = list;
    }

    public class MyViewHoler extends RecyclerView.ViewHolder {
        TextView title;

        public MyViewHoler(@NonNull View itemView) {
            super(itemView);

            title = (TextView)itemView.findViewById(R.id.left_text);



        }
    }

    private SetOnclick setOnclick;
    //接口回调
    public void click(SetOnclick setOnclick){
        this.setOnclick=setOnclick;
    }
    //定义接口
    public interface SetOnclick{
        void getonclick(int postion);
    }

}

右侧适配器


public class RightAdater extends RecyclerView.Adapter<RightAdater.MyViewHoler> {

    public Context context;

    public RightAdater(Context context) {
        this.context = context;
    }

    @NonNull
    @Override
    public RightAdater.MyViewHoler onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = View.inflate(context,R.layout.right_item,null);
        MyViewHoler myViewHoler = new MyViewHoler(view);

        return myViewHoler;
    }

    @Override
    public void onBindViewHolder(@NonNull RightAdater.MyViewHoler myViewHoler, int i) {
        myViewHoler.title.setText(list.get(i).getName());
        List<RightBean.DataBean.ListBean> data = this.list.get(i).getList();
        RightChildAdater adater = new RightChildAdater(context);
        GridLayoutManager manager = new GridLayoutManager(context,3);
        myViewHoler.rightview.setLayoutManager(manager);
        myViewHoler.rightview.setAdapter(adater);
        adater.setList(data);
    }

    @Override
    public int getItemCount() {
        return list.size();
    }
    private List<RightBean.DataBean> list= new ArrayList<>();
    public void setList(List<RightBean.DataBean> list) {
        this.list = list;
    }

    public class MyViewHoler extends RecyclerView.ViewHolder {
        RecyclerView rightview;
        TextView title;

        public MyViewHoler(@NonNull View itemView) {
            super(itemView);
            title = (TextView)itemView.findViewById(R.id.right_text);
            rightview = (RecyclerView)itemView.findViewById(R.id.rightview);


        }
    }
}

右侧适配器 展示列表

public class RightChildAdater extends RecyclerView.Adapter<RightChildAdater.MyViewHoler> {

    public Context context;
    public RightChildAdater(Context context) {
        this.context = context;
    }

    @NonNull
    @Override
    public RightChildAdater.MyViewHoler onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = View.inflate(context,R.layout.right_child_item,null);
        MyViewHoler myViewHoler = new MyViewHoler(view);

        return myViewHoler;
    }

    @Override
    public void onBindViewHolder(@NonNull RightChildAdater.MyViewHoler myViewHoler, int i) {
        myViewHoler.title.setText(list.get(i).getName());
        Glide.with(context).load(list.get(i).getIcon()).into(myViewHoler.pic);
    }

    @Override
    public int getItemCount() {
        return list.size();
    }
    private List<RightBean.DataBean.ListBean> list=new ArrayList<>();
    public void setList(List<RightBean.DataBean.ListBean> list) {
        this.list = list;
    }

    public class MyViewHoler extends RecyclerView.ViewHolder {
        ImageView pic;
        TextView title;

        public MyViewHoler(@NonNull View itemView) {
            super(itemView);

            title = (TextView)itemView.findViewById(R.id.right_chil_text);
            pic = (ImageView)itemView.findViewById(R.id.right_chil_pic);



        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值