G

1.Addsum
public class Addsum extends LinearLayout {

private View view;
private TextView add;
private TextView jian;
private TextView num;
private TextView num1;

public Addsum(Context context) {
    super(context,null);
}

public Addsum(Context context,  AttributeSet attrs) {
    this(context, attrs,-1);
}

public Addsum(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
    initview(context);
}
private void initview(Context context) {
    view = View.inflate(context, R.layout.add_sum,this);
    add = view.findViewById(R.id.add);
    jian = view.findViewById(R.id.jian);
    num1 = view.findViewById(R.id.num);
}
public void setJiaOnClickListener(OnClickListener onClickListener) {
    add.setOnClickListener(onClickListener);
}
public void setNum(int num){
     num1.setText(""+num);
}
public void setJianOnClickListener(OnClickListener onClickListener) {
   jian.setOnClickListener(onClickListener);
}

}

2.Adapter
public class ShopCarAdapter extends BaseExpandableListAdapter {
private Context context;
private ShopCarBean shopCarBean;
private OnSumClick onSumClick;
private OnAddClickListner onAddClickListner;
private OnJianClickListner onJianClickListner;
public ShopCarAdapter(Context context, ShopCarBean shopCarBean) {
this.context = context;
this.shopCarBean = shopCarBean;
}

@Override
public int getGroupCount() {
    return shopCarBean.getData().size();
}

@Override
public int getChildrenCount(int groupPosition) {
    return shopCarBean.getData().get(groupPosition).getList().size();
}

@Override
public Object getGroup(int groupPosition) {
    return shopCarBean.getData().get(groupPosition);
}

@Override
public Object getChild(int groupPosition, int childPosition) {
    return shopCarBean.getData().get(groupPosition).getList().get(childPosition);
}

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

@Override
public long getChildId(int groupPosition, int childPosition) {
    return childPosition;
}

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

@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
    Holder1 holder1 = null;
    if (convertView==null){
        convertView = View.inflate(context,R.layout.group_item,null);
        holder1 = new Holder1();
        holder1.checkBox = convertView.findViewById(R.id.group_checkbox);
        holder1.textView= convertView.findViewById(R.id.grouop_name);
        convertView.setTag(holder1);
    }else {
        holder1 = (Holder1) convertView.getTag();
    }
    holder1.textView.setText(shopCarBean.getData().get(groupPosition).getSellerName());
    holder1.checkBox.setChecked(shopCarBean.getData().get(groupPosition).isChecked());
    return convertView;
}

@Override
public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
   Holder2 holder2 =null;
   if (convertView==null){
       convertView=LayoutInflater.from(context).inflate(R.layout.child_item,parent,false);
       holder2 = new Holder2();
       holder2.checkBox=convertView.findViewById(R.id.child_checkbox);
       holder2.imageView=convertView.findViewById(R.id.child_image);
       holder2.textView=convertView.findViewById(R.id.child_name);
       holder2.textView1=convertView.findViewById(R.id.child_qian);
       holder2.addsum=convertView.findViewById(R.id.sum);
       convertView.setTag(holder2);
   }else {
       holder2 = (Holder2) convertView.getTag();
   }
   holder2.textView.setText(shopCarBean.getData().get(groupPosition).getList().get(childPosition).getTitle());
   holder2.textView1.setText(shopCarBean.getData().get(groupPosition).getList().get(childPosition).getPrice()+"");

   String images = shopCarBean.getData().get(groupPosition).getList().get(childPosition).getImages();
    String[] split = images.split("\\|");
    if (split.length>0){
        holder2.imageView.setImageURI(split[0]);
    }

    holder2.checkBox.setChecked(shopCarBean.getData().get(groupPosition).getList().get(childPosition).isCheckbox());
    holder2.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (isChecked){
                        shopCarBean.getData().get(groupPosition).getList().get(childPosition).setCheckbox(true);

            }else {
                shopCarBean.getData().get(groupPosition).getList().get(childPosition).setCheckbox(false);
            }
            onItemClick.onclcik();
        }
    });


    holder2.addsum.setNum(shopCarBean.getData().get(groupPosition).getList().get(childPosition).getNum());
    //加
    holder2.addsum.setJiaOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            onAddClickListner.AddClick(groupPosition,childPosition,shopCarBean.getData().get(groupPosition).getList().get(childPosition).getNum());
        }
    });
    //減
    holder2.addsum.setJianOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            onJianClickListner.JianClick(groupPosition,childPosition,shopCarBean.getData().get(groupPosition).getList().get(childPosition).getNum());
        }
    });
    return convertView;
}

public ShopCarBean getShopCarBean() {
    return shopCarBean;
}


@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
    return true;
}

class Holder1{
    CheckBox checkBox;
    TextView textView;
}
class Holder2{
    CheckBox checkBox;
    SimpleDraweeView imageView;
    TextView textView;
    TextView textView1;
    Addsum addsum;
}


//單選
public interface OnItemClick{
    void onclcik();
}
private OnItemClick onItemClick;

public void setOnItemClick(OnItemClick onItemClick) {
    this.onItemClick = onItemClick;
}



//計算總價接口回調s
public interface OnSumClick{
    void onclcik(double sum);
}
public void setOnSumClick(OnSumClick onSumClick1) {
    this.onSumClick = onSumClick1;
}

@Override
public void notifyDataSetChanged() {
    super.notifyDataSetChanged();
    double sum1 = 0;
    for (int i = 0; i <shopCarBean.getData().size() ; i++) {
        for (int j = 0; j <shopCarBean.getData().get(i).getList().size() ; j++) {
            if (shopCarBean.getData().get(i).getList().get(j).isCheckbox()){
                int num = shopCarBean.getData().get(i).getList().get(j).getNum();
                sum1=sum1+(shopCarBean.getData().get(i).getList().get(j).getPrice()*num);
            }
        }
    }
    onSumClick.onclcik(sum1);
    /*heji.setText("¥:"+sum1);*/
}

//加
public void setOnAddClickListner(OnAddClickListner onAddClickListner1){
    this.onAddClickListner=onAddClickListner1;
}
public interface OnAddClickListner{
    void AddClick(int g,int c,int num);
}

//減
public void setOnJianClickListner(OnJianClickListner onJianClickListner1){
    this.onJianClickListner=onJianClickListner1;
}
public interface OnJianClickListner{
    void JianClick(int g,int c,int num);
}

}

3.Frag
public class ShopcarFrag extends Fragment implements ShopcarView {
@BindView(R.id.qx)
CheckBox qx;
@BindView(R.id.heji)
TextView heji;
private ShopCarPresenter shopCarPresenter = new ShopCarPresenter(this);

@BindView(R.id.expandlistview)
ExpandableListView expandlistview;
Unbinder unbinder;
private ShopCarAdapter shopCarAdapter;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_shopcar, container, false);
    unbinder = ButterKnife.bind(this, view);
    shopCarPresenter.getShopcar();
    return view;
}
@Override
public void onDestroyView() {
    super.onDestroyView();
    unbinder.unbind();
}

@Override
public void onSuccessShopcar(final ShopCarBean shopCarBean) {
    shopCarBean.getData().remove(0);
    shopCarAdapter = new ShopCarAdapter(getActivity(), shopCarBean);
    expandlistview.setAdapter(shopCarAdapter);
    //計算總價
    shopCarAdapter.setOnSumClick(new ShopCarAdapter.OnSumClick() {
        @Override
        public void onclcik(double sum) {
            heji.setText("¥:"+sum);
        }
    });
    //展開
    for (int i = 0; i < shopCarAdapter.getGroupCount(); i++) {
        expandlistview.expandGroup(i);
    }
    //全選
    qx.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (isChecked){
                for (int i = 0; i <shopCarBean.getData().size() ; i++) {
                    shopCarBean.getData().get(i).setChecked(true);
                    for (int j = 0; j <shopCarBean.getData().get(i).getList().size() ; j++) {
                        shopCarBean.getData().get(i).getList().get(j).setCheckbox(true);
                    }
                }
            }else {
                for (int i = 0; i <shopCarBean.getData().size() ; i++) {
                    shopCarBean.getData().get(i).setChecked(false);
                    for (int j = 0; j <shopCarBean.getData().get(i).getList().size() ; j++) {
                        shopCarBean.getData().get(i).getList().get(j).setCheckbox(false);
                    }
                }
            }
            shopCarAdapter.notifyDataSetChanged();
        }
    });
    //單價
    shopCarAdapter.setOnItemClick(new ShopCarAdapter.OnItemClick() {
        @Override
        public void onclcik() {
            double sum1 = 0;
            for (int i = 0; i <shopCarBean.getData().size() ; i++) {
                for (int j = 0; j <shopCarBean.getData().get(i).getList().size() ; j++) {
                    if (shopCarBean.getData().get(i).getList().get(j).isCheckbox()){
                        int num = shopCarBean.getData().get(i).getList().get(j).getNum();
                        sum1=sum1+(shopCarBean.getData().get(i).getList().get(j).getPrice()*num);
                    }
                }
            }
            heji.setText("¥:"+sum1);
        }
    });
    //加
    shopCarAdapter.setOnAddClickListner(new ShopCarAdapter.OnAddClickListner() {
        @Override
        public void AddClick(int g, int c, int num) {
            ShopCarBean shopCarBean1 = shopCarAdapter.getShopCarBean();
            shopCarBean1.getData().get(g).getList().get(c).setNum(shopCarBean1.getData().get(g).getList().get(c).getNum()+1);
            shopCarAdapter.notifyDataSetChanged();
        }
    });
    //減
    shopCarAdapter.setOnJianClickListner(new ShopCarAdapter.OnJianClickListner() {
        @Override
        public void JianClick(int g, int c, int num) {
            ShopCarBean shopCarBean1 = shopCarAdapter.getShopCarBean();
            shopCarBean1.getData().get(g).getList().get(c).setNum(shopCarBean1.getData().get(g).getList().get(c).getNum()-1);
            shopCarAdapter.notifyDataSetChanged();
        }
    });
}

@Override
public void onFailerShopcar(String error) {

}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章