PROD适配器

package com.example.app.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.CheckBox;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.example.app.R;
import com.example.app.callback.CartCallback;
import com.example.app.entity.CartBean;
import com.example.app.widget.AddMinusView;
import com.jcodecraeer.xrecyclerview.XRecyclerView;

import java.util.List;

public class ProductAdapter extends XRecyclerView.Adapter<ProductAdapter.MyVh> {

private Context context;
private List<CartBean.Cart.Product> carts;

/**
 * 一级列表回调接口
 *
 * @param viewGroup
 * @param i
 * @return
 */
private CartCallback cartCallback;

public void setCartCallback(CartCallback cartCallback) {
    this.cartCallback = cartCallback;
}

public ProductAdapter(Context context, List<CartBean.Cart.Product> carts) {
    this.context = context;
    this.carts = carts;
}

@NonNull
@Override
public ProductAdapter.MyVh onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    View view = LayoutInflater.from(context).inflate(R.layout.product_item_layout, viewGroup, false);
    return new MyVh(view);
}

@Override
public void onBindViewHolder(@NonNull final ProductAdapter.MyVh myVh, int i) {
    final CartBean.Cart.Product product = carts.get(i);
    myVh.checkBox.setChecked(product.isProductisChecked);

    String[] split = product.images.split("\\|");
    if (split != null && split.length > 0) {
        Glide.with(context).load(split[0]).into(myVh.iv);
    }
    myVh.addMinusView.setNumTv(product.productNum);
    myVh.priceTv.setText("$:" + product.price);
    myVh.titleTv.setText(product.title);
    //加减器监听
    myVh.addMinusView.setAddMinusCallback(new AddMinusView.AddMinusCallback() {
        @Override
        public void numCallback(int num) {
            product.productNum = num;//对当前商品数量动态改变
            //通知一级列表数量改变 刷新数据
            if (cartCallback != null) {
                cartCallback.notifyNum();
            }
        }
    });

    //设置二级按钮选中状态
    myVh.checkBox.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            if (!myVh.checkBox.isChecked()) {//二级未选中
                product.isProductisChecked = false;
                //以及未选中的问题
                if (cartCallback != null) {
                    cartCallback.notifyCartItem(false, product.pos);
                }
            } else {//二级已选中
                product.isProductisChecked = true;

                //遍历所有的数据
                for (CartBean.Cart.Product cart : carts) {
                    //判断集合内商品的选中状态      如果为选中
                    if (!cart.isProductisChecked) {
                        if (cartCallback != null) {
                            cartCallback.notifyCartItem(false, product.pos);
                        }
                        break;//跳出循环

                    }
                    //如果都选中 设置一级为true
                    if (cartCallback != null) {
                        cartCallback.notifyCartItem(true, product.pos);
                    }
                }
            }
        }
    });
}

@Override
public int getItemCount() {
    return carts == null ? 0 : carts.size();
}

public class MyVh extends RecyclerView.ViewHolder {

    private final ImageView iv;
    private final CheckBox checkBox;
    private final TextView titleTv;
    private final AddMinusView addMinusView;
    private final TextView priceTv;

    public MyVh(@NonNull View itemView) {
        super(itemView);
        iv = itemView.findViewById(R.id.iv_product);
        checkBox = itemView.findViewById(R.id.checkbox);
        titleTv = itemView.findViewById(R.id.title);
        addMinusView = itemView.findViewById(R.id.addminusView);
        priceTv = itemView.findViewById(R.id.price);
    }
}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值