适配器

外层商家

package com.example.shopcart04.adapter;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.example.shopcart04.R;
import com.example.shopcart04.bean.ShopCartBean;
import com.example.shopcart04.holder.ShopHolder;

import java.util.List;

public class ShopAdapter extends RecyclerView.Adapter<ShopHolder> {
    private List<ShopCartBean.DataBean> list;
    private Context context;
    private GoodsAdapter goodsAdapter;

    public ShopAdapter(List<ShopCartBean.DataBean> list, Context context) {
        this.list = list;
        this.context = context;
    }

    @NonNull
    @Override
    public ShopHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        return new ShopHolder(LayoutInflater.from(context).inflate(R.layout.shop_layout, parent, false));
    }

    @Override
    public void onBindViewHolder(@NonNull final ShopHolder holder, final int position) {
        holder.check_box_shop.setChecked(list.get(position).isOutchecked());

        holder.text_shopname.setText(list.get(position).getSellerName());
        LinearLayoutManager manager = new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false);
        holder.recyc_view_goods.setLayoutManager(manager);
        GoodsAdapter goodsAdapter = new GoodsAdapter(context, list.get(position).getList());
        holder.recyc_view_goods.setAdapter(goodsAdapter);
        //商家选中控制里面的子条目
        holder.check_box_shop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                boolean ischecked = holder.check_box_shop.isChecked();//定义商家的选中状态
                list.get(position).setOutchecked(ischecked);
                if (ischecked) {
                    for (int i = 0; i < list.get(holder.getLayoutPosition()).getList().size(); i++) {
                        list.get(holder.getLayoutPosition()).getList().get(i).setInnerchecked(true);
                    }
                } else {
                    for (int i = 0; i < list.get(holder.getLayoutPosition()).getList().size(); i++) {
                        list.get(holder.getLayoutPosition()).getList().get(i).setInnerchecked(false);
                    }
                }
                onclickchangelisten.onitemchecked(holder.getLayoutPosition(), ischecked);
            }
        });

        //获取里层条目状态
        goodsAdapter.setOnclickchangelisten(new GoodsAdapter.onclickchangelisten() {
            @Override
            public void onchecked(int layoutPosition, boolean checked) {
                boolean b = true;
                for (int i = 0; i < list.get(holder.getLayoutPosition()).getList().size(); i++) {
                    boolean innerchecked = list.get(holder.getLayoutPosition()).getList().get(i).isInnerchecked();
                    b = (b & innerchecked);
                }
                holder.check_box_shop.setChecked(b);
                list.get(position).setOutchecked(b);
                onclickchangelisten.onchecked(holder.getLayoutPosition(), checked);
            }
        });
    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    private onclickchangelisten onclickchangelisten;

    public void setOnclickchangelisten(onclickchangelisten onclickchangelisten) {
        this.onclickchangelisten = onclickchangelisten;
    }

    public interface onclickchangelisten {
        void onchecked(int layoutPosition, boolean checked);

        void onitemchecked(int layoutPosition, boolean ischecked);
    }
}

内层商品

package com.example.shopcart04.adapter;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.example.shopcart04.R;
import com.example.shopcart04.bean.ShopCartBean;
import com.example.shopcart04.holder.GoodsHolder;
import com.example.shopcart04.widge.ButtonView;

import org.greenrobot.eventbus.EventBus;

import java.util.List;

public class GoodsAdapter extends RecyclerView.Adapter<GoodsHolder> {
    private Context context;
    private List<ShopCartBean.DataBean.ListBean> listBeans;
    private TextView text_num;

    public GoodsAdapter(Context context, List<ShopCartBean.DataBean.ListBean> listBeans) {
        this.context = context;
        this.listBeans = listBeans;
    }

    @NonNull
    @Override
    public GoodsHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        return new GoodsHolder(LayoutInflater.from(context).inflate(R.layout.goods_layout,parent,false));
    }

    @Override
    public void onBindViewHolder(@NonNull final GoodsHolder holder, final int position) {
        holder.check_box_goods.setChecked(listBeans.get(position).isInnerchecked());

        Glide.with(context).load(listBeans.get(position).getImages().split("\\|")[0]).into(holder.img_goodspic);
        holder.text_goodsname.setText(listBeans.get(position).getTitle());
        text_num = holder.btn_view.findViewById(R.id.text_num);
        text_num.setText(listBeans.get(position).getNum()+"");
        holder.text_goods_peice.setText("¥:"+listBeans.get(position).getPrice());

        //加减
        holder.btn_view.setAddAndMinusu(new ButtonView.AddAndMinus() {
            @Override
            public void add() {
                listBeans.get(position).setNum(listBeans.get(position).getNum()+1);
                notifyDataSetChanged();
                ShopCartBean shopCartBean = new ShopCartBean();
                EventBus.getDefault().post(shopCartBean);
            }

            @Override
            public void minus() {
                listBeans.get(position).setNum(listBeans.get(position).getNum()-1);
                notifyDataSetChanged();
                ShopCartBean shopCartBean = new ShopCartBean();
                EventBus.getDefault().post(shopCartBean);
            }
        });
        holder.check_box_goods.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                listBeans.get(position).setInnerchecked(holder.check_box_goods.isChecked());
                onclickchangelisten.onchecked(holder.getLayoutPosition(),holder.check_box_goods.isChecked());
            }
        });
    }

    @Override
    public int getItemCount() {
        return listBeans.size();
    }
    private onclickchangelisten onclickchangelisten;
    public void setOnclickchangelisten(GoodsAdapter.onclickchangelisten onclickchangelisten){
        this.onclickchangelisten= onclickchangelisten;
    }
    public interface onclickchangelisten{
        void onchecked(int layoutPosition, boolean checked);
    }
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值