购物车

package com.bwie.shopcar.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 android.widget.CheckBox;

import com.bwie.shopcar.R;
import com.bwie.shopcar.bean.News;

import java.util.List;

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.OneHolder> {
private Context context;
private List<News.DataBean> list;

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

@NonNull
@Override
public OneHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(context).inflate(R.layout.item, null);
    OneHolder holder = new OneHolder(view);
    return holder;
}

@Override
public void onBindViewHolder(@NonNull final OneHolder holder, final int position) {
    //全选
    holder.cb_02.setChecked(list.get(position).isOutchecked());
    holder.cb_02.setText(list.get(position).getSellerName());


    LinearLayoutManager manager = new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false);
    holder.recycleview01.setLayoutManager(manager);
    InnerAdapter innerAdapter = new InnerAdapter(context, list.get(position).getList());
    holder.recycleview01.setAdapter(innerAdapter);

    holder.cb_02.setOnClickListener(null);
    //商家选中控制里面的子条目
    holder.cb_02.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            boolean ischecked = holder.cb_02.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);
        }
    });


    //获取里层条目的选中状态
    innerAdapter.setOnclickchangelisten(new InnerAdapter.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.cb_02.setChecked(b);
            //设置给外层条目
            list.get(position).setOutchecked(b);
            onclickchangelisten.onchecked(holder.getLayoutPosition(),checked);
        }
    });
}

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

//创建视图
class OneHolder extends RecyclerView.ViewHolder{
    private final CheckBox cb_02;
    private final RecyclerView recycleview01;
    public OneHolder(View itemView) {
        super(itemView);
        cb_02 = itemView.findViewById(R.id.cb_02);
        recycleview01 = itemView.findViewById(R.id.recycleview01);
    }
}


private onclickchangelisten onclickchangelisten;
//向外提供方法

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

//全选的商家回调方法
public  interface onclickchangelisten{
    void onchecked(int layoutPosition,boolean checked);
    void onitemchecked(int layoutPosition,boolean ischecked);
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值