购物车逻辑

适配器

public class OneAdapter extends RecyclerView .Adapter<OneAdapter.Holder>{
private List<ShopcartBean.OrderDataBean> list = new ArrayList<>();
private Context mContext;

public OneAdapter(List<ShopcartBean.OrderDataBean> list, Context mContext) {
    this.list = list;
    this.mContext = mContext;
}

@NonNull
@Override
public Holder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View inflate = View.inflate(mContext, R.layout.one_item, null);
    Holder holder = new Holder(inflate);
    return holder;
}

@Override
public void onBindViewHolder(@NonNull Holder holder, int position) {
   holder.cartcbname.setText(list.get(position).getShopName()+"");
    ChidAdapter chidAdapter = new ChidAdapter(list.get(position).getCartlist(), position);
    holder.cartrecy.setAdapter(chidAdapter);
    //是否选中
    holder.cartcbname.setChecked(isprantClick(position));
    //点击
    holder.cartcbname.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (click!=null){
                click.setposition(position);
            }
        }
    });


}

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

public class Holder extends RecyclerView.ViewHolder {
    private final CheckBox cartcbname;
    private final RecyclerView cartrecy;

    public Holder(@NonNull View itemView) {
        super(itemView);
        cartrecy = itemView.findViewById(R.id.cartrecy);
        cartcbname =itemView.findViewById(R.id.cartcbname);
        cartrecy.setLayoutManager(new LinearLayoutManager(mContext));
    }
}


//---------------------------------具体商品-------------------------------------
class ChidAdapter extends RecyclerView.Adapter<ChidAdapter.ChidHolder>{
    private List<ShopcartBean.OrderDataBean.CartlistBean> chidlist=new ArrayList<>();
    private int bigIndex;

    public ChidAdapter(List<ShopcartBean.OrderDataBean.CartlistBean> chidlist, int bigIndex) {
        this.chidlist = chidlist;
        this.bigIndex = bigIndex;
    }

    @NonNull
    @Override
    public ChidHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View inflate = View.inflate(mContext, R.layout.tow_item, null);
        ChidHolder chidHolder = new ChidHolder(inflate);
        return chidHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull ChidHolder holder, int position) {
        NetGlide.ImageGlide(chidlist.get(position).getDefaultPic(),holder.cartimage);
        holder.cartname.setText(chidlist.get(position).getProductName()+"");
        holder.cartcolcor.setText("颜色:"+chidlist.get(position).getColor()+"");
        holder.cartprice.setText("¥"+chidlist.get(position).getPrice()+"");
        holder.cartcb.setChecked(chidlist.get(position).isStuas());
        holder.addView.setNumber(chidlist.get(position).getCount());
        holder.cartcb.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (click!=null){
                    click.setchildposition(bigIndex,position);

                }
            }
        });
        //addview
        holder.addView.setCallBack(new AddView.AddCallBack() {
            @Override
            public void setCount(int number) {
                if (click!=null){
                    click.setcountdposition(bigIndex,position,number);
                }
            }
        });
    }

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

    public class ChidHolder extends RecyclerView.ViewHolder {
        private final CheckBox cartcb;
        private final ImageView cartimage;
        private final TextView cartname;
        private final TextView cartcolcor;
        private final TextView cartprice;
        private final AddView addView;

        public ChidHolder(@NonNull View itemView) {
            super(itemView);
            cartcb = itemView.findViewById(R.id.cartcb);
            cartimage = itemView.findViewById(R.id.cartimage);
            cartname = itemView.findViewById(R.id.cartname);
            cartcolcor = itemView.findViewById(R.id.cartcolcor);
            cartprice = itemView.findViewById(R.id.cartprice);
            addView = itemView.findViewById(R.id.addview);
        }
    }

}
//=====================点击接口回调
public setonClick click;

public void itemClick(setonClick setonClick){
    click=setonClick;
}
public interface setonClick{
    void setposition(int bigIndex);
    void setchildposition(int bigIndex,int childbigIndex);
    void setcountdposition(int bigIndex,int childbigIndex,int countIndex );
}
//==================逻辑============
//是否选中商品
public boolean isprantClick(int bigIndex){
    boolean prant=true;
    List<ShopcartBean.OrderDataBean.CartlistBean> cartlist = list.get(bigIndex).getCartlist();
    for (int i=0;i<cartlist.size();i++){
        if (!cartlist.get(i).isStuas()){
            prant=false;
            return prant;
        }
    }
    return prant;
}

//是否选中具体商品
public void setPreantClick(int bigIndex,boolean isStatus){
    for (int i=0;i<list.size();i++){
        List<ShopcartBean.OrderDataBean.CartlistBean> cartlist = list.get(bigIndex).getCartlist();
        for (int j=0;j<cartlist.size();j++){
            cartlist.get(j).setStuas(isStatus);
        }
    }
    int shu = allCuont();
    int price = allPrice();
    SharedPreferences count = App.mContext.getSharedPreferences("count", Context.MODE_PRIVATE);
    count.edit().putInt("shu",shu)
            .putInt("price",price)
            .commit();
}

//选中具体商品  是否让商家也选中
public void setChildClick(int bigIndex,int childbigIndex,boolean isStatus){
    list.get(bigIndex).getCartlist().get(childbigIndex).setStuas(isStatus);
    int shu = allCuont();
    int price = allPrice();
    SharedPreferences count = App.mContext.getSharedPreferences("child", Context.MODE_PRIVATE);
    count.edit().putInt("shu",shu)
            .putInt("price",price)
            .commit();
}

//点击是否全部选中
public boolean AllClick(){
    boolean allPreant=true;
    for (int i =0;i<list.size();i++){
        List<ShopcartBean.OrderDataBean.CartlistBean> cartlist = list.get(i).getCartlist();
        for (int j=0;j<cartlist.size();j++){
            if (!cartlist.get(j).isStuas()){
                allPreant=false;
                return allPreant;
            }
        }
    }
    return allPreant;
}
//点击全部选中是否商家  和具体商品全体选中
public void serAllClick(boolean isStatus){
    for (int i=0;i<list.size();i++){
        List<ShopcartBean.OrderDataBean.CartlistBean> cartlist = list.get(i).getCartlist();
        for (int j=0;j<cartlist.size();j++){
            cartlist.get(j).setStuas(isStatus);
        }
    }
}


//计算总价格
public int allPrice(){
    int allprice=0;
    for (int i=0;i<list.size();i++){
        List<ShopcartBean.OrderDataBean.CartlistBean> cartlist = list.get(i).getCartlist();
        for (int j=0;j<cartlist.size();j++){
            if (cartlist.get(j).isStuas()){
                allprice+=cartlist.get(j).getPrice()*cartlist.get(j).getCount();
            }
        }
    }
    return allprice;
}
//计算数量
public int allCuont(){
    int count=0;
    for (int i=0;i<list.size();i++){
        List<ShopcartBean.OrderDataBean.CartlistBean> cartlist = list.get(i).getCartlist();
        for (int j=0;j<cartlist.size();j++){
            if (cartlist.get(j).isStuas()){
                count+=cartlist.get(j).getCount();
            }

        }
    }
    return count;
}
## Activity中
public class ShpingActivity extends BaseActivity implements View .OnClickListener{

private RecyclerView onerecy;
private OneAdapter oneAdapter;
private CheckBox allcb;
private TextView allprice;
private TextView allcount;
private List<ShopcartBean.OrderDataBean> list = new ArrayList<>();
@Override
protected void initData() {
    //购物车
    mPresneter.onSuccess(BaseUrl.ShpingUrl, ShopcartBean.class);

}

@Override
protected BasePresenter initPresenter() {
    return new IPresenterImpl();
}

@Override
protected void initViews() {
    onerecy = findViewById(R.id.onerecy);
    onerecy.setLayoutManager(new LinearLayoutManager(this));
    allcb = findViewById(R.id.allcb);
    allprice = findViewById(R.id.allprice);
    allcount = findViewById(R.id.allcount);
    allcb.setOnClickListener(this);
}

@Override
protected int initLaout() {
    return R.layout.activity_shping;
}

@Override
public void onSuccess(Object o) {
    if (o instanceof ShopcartBean){
        oneAdapter = new OneAdapter(((ShopcartBean) o).getOrderData(), this);
        onerecy.setAdapter(oneAdapter);
        oneAdapter.notifyDataSetChanged();
        oneAdapter.itemClick(new OneAdapter.setonClick() {
            @Override
            public void setposition(int bigIndex) {
                boolean b = oneAdapter.isprantClick(bigIndex);
                oneAdapter.setPreantClick(bigIndex,!b);
                oneAdapter.notifyDataSetChanged();
                SharedPreferences count = getSharedPreferences("count", MODE_PRIVATE);
                int shu = count.getInt("shu", 0);
                int price = count.getInt("price", 0);
                allprice.setText(price+"");
                allcount.setText(shu+"");

            }

            @Override
            public void setchildposition(int bigIndex, int childbigIndex) {
                boolean stuas = ((ShopcartBean) o).getOrderData().get(bigIndex).getCartlist().get(childbigIndex).isStuas();
                oneAdapter.setChildClick(bigIndex,childbigIndex,!stuas);
                oneAdapter.notifyDataSetChanged();
                SharedPreferences count = getSharedPreferences("child", MODE_PRIVATE);
                int shu = count.getInt("shu", 0);
                int price = count.getInt("price", 0);
                allprice.setText(price+"");
                allcount.setText(shu+"");
            }

            @Override
            public void setcountdposition(int bigIndex, int childbigIndex, int countIndex) {
                ((ShopcartBean) o).getOrderData().get(bigIndex).getCartlist().get(childbigIndex).setCount(countIndex);
                oneAdapter.notifyDataSetChanged();
               allcount();
            }
        });

    }

}

@Override
public void onError(String error) {

}
@Override
public void onClick(View v) {
    switch (v.getId()){
        case R.id.allcb:
            boolean b = oneAdapter.AllClick();
            oneAdapter.serAllClick(!b);
            oneAdapter.notifyDataSetChanged();
            allcount.setText(oneAdapter.allCuont()+"");
            allprice.setText(oneAdapter.allPrice()+"");
            break;
    }
}

public void allcount(){
    boolean b = oneAdapter.AllClick();
    oneAdapter.serAllClick(b);
    allprice.setText(oneAdapter.allPrice()+"");
    allcount.setText(oneAdapter.allCuont()+"");
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值