购物车二级列表适配器

  //当前类名 :
CarExpandAdapter 
extends BaseExpandableListAdapter
package wld.bawei.com.myjindong.Adapter;

import android.content.Context;
import android.content.SharedPreferences;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;

import java.util.List;

import wld.bawei.com.myjindong.Bean.Query_bean;
import wld.bawei.com.myjindong.DeleteMvp.DeletePresenter;
import wld.bawei.com.myjindong.DeleteMvp.DeleteView;
import wld.bawei.com.myjindong.Fragment.Shopping;
import wld.bawei.com.myjindong.R;

/**
 * Created by 大金鑫 on 2017/12/15.
 */

public class CarExpandAdapter extends BaseExpandableListAdapter {
    private  List<Query_bean.DataBean> data;
    private Context context;
    public Shopping shopping;
    private RecyclerView carsysler;
    TextView tv_commodity_name;
    ImageView iv_show_pic;
    TextView tv_commodity_price;
    TextView tv_commodity_show_num;
    TextView tv_commodity_num;
    CheckBox ck_chose;
    Button btn_commodity_delete;
    TextView iv_sub;
    TextView iv_add;
    private int num;
    private int numj;
    public static boolean flog;
    public CarExpandAdapter(List<Query_bean.DataBean> data, Context context, Shopping shopping){
        this.context=context;
        this.data=data;
        this.shopping=shopping;
    }
    @Override
    public int getGroupCount() {
        return data != null ? data.size() : 0;
    }

    @Override
    public int getChildrenCount(int i) {
        return data.get(i).getList().size();
    }

    @Override
    public Object getGroup(int i) {
        return data.get(i);
    }

    @Override
    public Object getChild(int i, int i1) {
        return data.get(i).getList().get(i);
    }

    @Override
    public long getGroupId(int i) {
        return i;
    }

    @Override
    public long getChildId(int i, int i1) {
        return i1;
    }

    @Override
    public boolean hasStableIds() {
        return false;
    }

    @Override
    public View getGroupView(final int i, boolean b, View view, ViewGroup viewGroup) {
        View inflate = View.inflate(context, R.layout.shop_car_group, null);
        TextView tv = inflate.findViewById(R.id.cartv);
        final CheckBox ck_cargroup = inflate.findViewById(R.id.ck_cargroup);
        ck_cargroup.setChecked(true);
        tv.setText(data.get(i).getSellerName());
        if(data.get(i).getFlog()){
            ck_cargroup.setChecked(true);
        }else{
            ck_cargroup.setChecked(false);
        }
        ck_cargroup.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //Group布尔值变成选中状态
                data.get(i).setFlog(ck_cargroup.isChecked());
                //遍历Group集合
                for (int i = 0; i < data.size(); i++) {
                    //如果有一个未选中   全选变成false并跳出
                    if(!data.get(i).getFlog()){
                       shopping.Gaibian(false);
                        break;
                    }else{//全部选中 全选变成true
                        shopping.Gaibian(true);
                    }
                }
                //Child集合布尔值为选中的状态
                for (int j=0;j<data.get(i).getList().size();j++){
                    data.get(i).getList().get(j).setChoosed(ck_cargroup.isChecked());
                }
                //刷新适配器
                notifyDataSetChanged();
                //调用计算的方法
                shopping.js();
            }
        });
        return inflate;
    }

    @Override
    public View getChildView(final int i, final int i1, boolean b, View view, ViewGroup viewGroup) {
        View itemView = View.inflate(context, R.layout.shop_car_item, null);
        tv_commodity_name = itemView.findViewById(R.id.tv_commodity_name);
        tv_commodity_name.setText(data.get(i).getList().get(i1).getTitle());
        iv_show_pic=itemView.findViewById(R.id.iv_show_pic);
        String images = data.get(i).getList().get(i1).getImages();
        String[] split = images.split("\\|");
        Glide.with(context).load(split[0]).into(iv_show_pic);
        tv_commodity_price= itemView.findViewById(R.id.tv_commodity_price);
        tv_commodity_price.setText(data.get(i).getList().get(i1).getBargainPrice()+"");
        tv_commodity_show_num=itemView.findViewById(R.id.tv_commodity_show_num);
        tv_commodity_show_num.setText(data.get(i).getList().get(i1).getNum()+"");
        tv_commodity_num= itemView.findViewById(R.id.tv_commodity_num);
        tv_commodity_num.setText(data.get(i).getList().get(i1).getNum()+"");
        ck_chose = itemView.findViewById(R.id.ck_chose);
        ck_chose.setChecked(true);
        btn_commodity_delete = itemView.findViewById(R.id.btn_commodity_delete);
        iv_sub=itemView.findViewById(R.id.iv_sub);
        iv_add=itemView.findViewById(R.id.iv_add);
        //显示或隐藏删除按钮
        if(flog){
            btn_commodity_delete.setVisibility(View.VISIBLE);
        }else{
            btn_commodity_delete.setVisibility(View.GONE);
        }
        //子条目全选
            if(data.get(i).getList().get(i1).isChoosed()){
                ck_chose.setChecked(true);
            }else{
                ck_chose.setChecked(false);
            }

        ck_chose.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //Child布尔值变成选中状态
                data.get(i).getList().get(i1).setChoosed(((CheckBox)view).isChecked());
                //遍历Child集合
                for (int i=0;i<data.size();i++){
                    for (int j=0;j<data.get(i).getList().size();j++){
                        //如果有一个未选中     全选与商家按钮变成false并跳出
                        if(!data.get(i).getList().get(j).isChoosed()){
                            data.get(i).setFlog(false);
                            shopping.Gaibian(false);
                            break;
                        }else{//全部选中  全选与商家按钮变成true
                            data.get(i).setFlog(true);
                            shopping.Gaibian(true);
                        }
                    }
                }
                //二次遍历
                for(int p=0;p<data.size();p++){
                    boolean flag = data.get(p).getFlog();
                    if(flag){
                        shopping.Gaibian(true);
                    }else{
                        shopping.Gaibian(false);
                        break;
                    }
                }
                notifyDataSetChanged();
                //计算加减
               shopping.js();
            }
        });
        iv_add.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                 num = data.get(i).getList().get(i1).getNum();
                ++num;
                 data.get(i).getList().get(i1).setNum(num);
                tv_commodity_show_num.setText(data.get(i).getList().get(i1).getNum()+"");
                shopping.js();
                notifyDataSetChanged();
            }
        });
        iv_sub.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                num = data.get(i).getList().get(i1).getNum();
                if(num>1){
                    --num;
                    data.get(i).getList().get(i1).setNum(num);
                    tv_commodity_show_num.setText(data.get(i).getList().get(i1).getNum()+"");
                    shopping.js();
                    notifyDataSetChanged();
                }
            }
        });
        btn_commodity_delete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                SharedPreferences myshared = context.getSharedPreferences("Myshared", Context.MODE_PRIVATE);
                int uid = myshared.getInt("uid", 1);
                if(!(uid==1)){
                    int pid = data.get(i).getList().get(i1).getPid();
                    DeletePresenter deletePresenter = new DeletePresenter(new DeleteView() {
                        @Override
                        public void onDeleteFailure(String error) {

                        }

                        @Override
                        public void onDeleteSuccesss(String code) {
                            data.get(i).getList().remove(i1);
                            if(data.get(i).getList().size()==0){
                                data.remove(i);
                            }
                            shopping.js();
                            notifyDataSetChanged();
                        }
                    });
                    deletePresenter.verfiy(uid+"",pid+"");
                }
                notifyDataSetChanged();
            }
        });
        return itemView;
    }
    @Override
    public boolean isChildSelectable(int i, int i1) {
        return false;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值