全选全不选+商家选中子条目选中+联动价格

定义一个接口
public interface CartCallback {
void notifyCartItem(boolean isChecked,int position);
void notifynum();
}

在定义一个接口
public interface CartUICallback {
void notifyCart();
}

二级适配器
public class CartsAdapter extends RecyclerView.Adapter<CartsAdapter.ViewHolder> {
private Context context;
private List<CartBean.DataBean.ListBean> cartsdata;
private CartCallback cartCallback;

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

public CartsAdapter(Context context, List<CartBean.DataBean.ListBean> cartsdata) {
    this.context = context;
    this.cartsdata = cartsdata;
}

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

@Override
public void onBindViewHolder(@NonNull final CartsAdapter.ViewHolder viewHolder, final int i) {
        viewHolder.shouhuo2_img.setImageURI(cartsdata.get(i).getImages());
        viewHolder.shouhuo2_title.setText(cartsdata.get(i).getTitle());
        viewHolder.shouhuo2_price.setText(cartsdata.get(i).getBargainPrice()+"");
        viewHolder.checkbox_item1.setChecked(cartsdata.get(i).isProductCheckbox);


        //商品复选框
    viewHolder.checkbox_item1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            for (CartBean.DataBean.ListBean cartsdatum : cartsdata) {
                cartsdata.get(i).isProductCheckbox=viewHolder.checkbox_item1.isChecked();
                if (!cartsdatum.isProductCheckbox){
                    cartCallback.notifyCartItem(false,cartsdata.get(i).pos);
                    return;
                }
                cartCallback.notifyCartItem(true,cartsdata.get(i).pos);
                if (cartCallback!=null){
                    cartCallback.notifynum();
                }
            }
        }
    });

}

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

public class ViewHolder extends RecyclerView.ViewHolder {

    private final CheckBox checkbox_item1;
    private final TextView shouhuo2_title;
    private final TextView shouhuo2_price;
    private final SimpleDraweeView shouhuo2_img;

    public ViewHolder(@NonNull View itemView) {
        super(itemView);
        checkbox_item1 = itemView.findViewById(R.id.checkbox_item1);
        shouhuo2_title = itemView.findViewById(R.id.shouhuo2_title);
        shouhuo2_price = itemView.findViewById(R.id.shouhuo2_price);
        shouhuo2_img = itemView.findViewById(R.id.shouhuo2_img);
    }
}

}

一级适配器
public class CartAdapter extends RecyclerView.Adapter<CartAdapter.ViewHolder> implements CartCallback {
private Context context;
private List<CartBean.DataBean> cartdata;
private CartsAdapter cartsAdapter;
private CartUICallback cartUICallback;

public void setCartUICallback(CartUICallback cartUICallback) {
    this.cartUICallback = cartUICallback;
}
public CartAdapter(Context context, List<CartBean.DataBean> cartdata) {
    this.context = context;
    this.cartdata = cartdata;
    notifyDataSetChanged();
}
@NonNull
@Override
public CartAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    View view=LayoutInflater.from(context).inflate(R.layout.cart_item_layout,viewGroup,false);
    return new ViewHolder(view);
}

@Override
public void onBindViewHolder(@NonNull final CartAdapter.ViewHolder viewHolder, final int i) {
    viewHolder.sj.setText(cartdata.get(i).getSellerName());


    viewHolder.rv.setLayoutManager(new LinearLayoutManager(context));
    cartsAdapter = new CartsAdapter(context, cartdata.get(i).getList());
    viewHolder.rv.setAdapter(cartsAdapter);
    cartsAdapter.setCartCallback(this);
    viewHolder.checkbox_item.setChecked(cartdata.get(i).isCheckbox);
    if (cartdata.get(i).isCheckbox){
        viewHolder.checkbox_item.setChecked(true);
    }else{
        viewHolder.checkbox_item.setChecked(false);
    }

    for (CartBean.DataBean.ListBean listBean : cartdata.get(i).getList()) {
           listBean.pos=i;
    }

    //选中商家的单选框
    viewHolder.checkbox_item.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            cartdata.get(i).setCheckbox(viewHolder.checkbox_item.isChecked());
            //便利商品的集合,商品选中商家选中
            for (CartBean.DataBean.ListBean listBean : cartdata.get(i).getList()) {
                listBean.isProductCheckbox=cartdata.get(i).isCheckbox;
            }
            //调用总价
            if(cartUICallback!=null){
                cartUICallback.notifyCart();
            }
        }
    });

    //全选全不选
    viewHolder.checkbox_item.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            for (int j = 0; j < cartdata.get(i).getList().size(); j++) {
                cartdata.get(i).getList().get(j).setProductCheckbox(isChecked);
            }
            cartsAdapter.notifyDataSetChanged();
        }
    });

}

@Override
public int getItemCount() {
    return cartdata.size();
}
//继承cartcallback接口生成
@Override
public void notifyCartItem(boolean isChecked, int position) {
    if(cartUICallback!=null){
        cartUICallback.notifyCart();
    }
}
//继承cartcallback接口生成
@Override
public void notifynum() {
    if (cartUICallback!=null){
        cartUICallback.notifyCart();
    }
}

public class ViewHolder extends RecyclerView.ViewHolder {
    private final TextView sj;
    private final CheckBox checkbox_item;
    private final RecyclerView rv;

    public ViewHolder(@NonNull View itemView) {
        super(itemView);
        sj = itemView.findViewById(R.id.sj);
        checkbox_item = itemView.findViewById(R.id.checkbox_item);
        rv = itemView.findViewById(R.id.rv);
    }
}

}

主页面
public class FragmentCart extends Fragment implements DataView,CartUICallback {
@BindView(R.id.cart_rv)
RecyclerView cartRv;
@BindView(R.id.checkbox)
CheckBox checkbox;
@BindView(R.id.js)
Button js;
Unbinder unbinder;
private ShowPresenter showPresenter;
private CartAdapter cartAdapter;
private CartBean cartBean;
private List<CartBean.DataBean> data1;

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragmentcart, container, false);
    //ButterKnife
    unbinder = ButterKnife.bind(this, view);
    initData();
    return view;
}

private void initData() {
    showPresenter = new ShowPresenter(this);
    HashMap<String, String> map = new HashMap<>();
    map.put("uid","51");
    showPresenter.getData(Api.CART,map,2);
    showPresenter.attchView(this);
}

@Override
public void success(T result) {
    if (result instanceof CartBean){
        cartBean = (CartBean) result;
        cartRv.setLayoutManager(new LinearLayoutManager(getActivity()));
        Log.e("xqqq", cartBean.getMsg()+"");
        cartAdapter = new CartAdapter(getActivity(), cartBean.getData());
        cartRv.setAdapter(cartAdapter);
        cartAdapter.setCartUICallback(this);
        //全选全不选
        checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (isChecked){
                    for (CartBean.DataBean dataBean : cartBean.getData()) {
                        dataBean.setCheckbox(true);
                        for(CartBean.DataBean.ListBean listBean : dataBean.getList()){
                            listBean.setProductCheckbox(true);//二级列表不选中
                        }
                    }
                }else{
                    for (CartBean.DataBean dataBean : cartBean.getData()) {
                        dataBean.setCheckbox(false);
                        for(CartBean.DataBean.ListBean listBean : dataBean.getList()){
                            listBean.setProductCheckbox(false);//二级列表选中
                        }
                    }
                }
                cartAdapter.notifyDataSetChanged();
                jiaqian();
            }
        });
    }
}
//计算总价
private void jiaqian() {
    double totalprice=0;
    for (CartBean.DataBean dataBean : cartBean.getData()) {
        for (CartBean.DataBean.ListBean listBean : dataBean.getList()) {
            if (listBean.isProductCheckbox){
                totalprice+=listBean.getPrice();
            }
        }
    }
    checkbox.setText("¥:"+totalprice);
}

@Override
public void failure(T error) {

}

@Override
public void onDestroyView() {
    super.onDestroyView();
    unbinder.unbind();
    showPresenter.detachView();
}

/**
 * 总价接口
 */
@Override
public void notifyCart() {
    jiaqian();
}

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
摘 要 伴随着人才教学的关注度越来越高,对于人才的培养也是当今社会发展的最为重要的问题之一。为了进一步的进行人才的培养关工作,许多的学校或者是教育的机构逐步的开展了网络信息化的教学和和管理工作,通过信息化的手段和技术实现网络信息化的教育及管理模式,通过网络信息化的手段实现在线答题在线考试和学生信息在线的管理等操作。这样更加的快捷解决了人才培养之中的问题,也在进一步的促进了网络信息化教学方式的快速的发展工作。相较于之前的人才教育和培养工作之中,存在这许多的问题和局限性。在学生信息管理方面通过线下管理的形式进行学生信息的管理工作,在此过程之中存在着一定的局限性和低效性,往往一些突发的问题导致其中工作出现错误。导致相关的教育工作受到了一定的阻碍。在学生信息和学生成绩的管理方面,往常的教育模式之下都是采用的是人工线下的进行管理和整理工作,在这一过程之中存在这一定的不安全和低效性,面对与学生基数的越来越大,学生的信息管理也在面领着巨大的挑战,管理人员面领着巨大的学生信息的信息量,运用之前的信息管理方式往往会在统计和登记上出现错误的情况的产生,为后续的管理工作造成了一定的困难。然而通过信息化的管理方式进行对学生信息的管理不仅可以避免这些错误情况的产生还可以进一步的简化学生信息管理工作的流程,节约了大量的人力和物力的之处。在线答题系统的实现不仅给学生的信息管理工作和在线考试带来了方便也进一步的促进了教育事业信息化的发展,从而实现高效化的教学工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值