package com.bawei.dome_gouwu3; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.BaseExpandableListAdapter; import android.widget.CheckBox; import android.widget.ImageView; import android.widget.TextView; import com.nostra13.universalimageloader.core.ImageLoader; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; /** * Created by hasee on 2018/6/29. */ public class MyAdapter extends BaseExpandableListAdapter { private static final String TAG = "MyAdapter"; private List<Baen.DataBean> data; public MyAdapter(List<Baen.DataBean> data) { this.data = data; } @Override public int getGroupCount() { return data == null ? 0 : data.size(); } @Override public int getChildrenCount(int groupPosition) { return data.get(groupPosition).getList() == null ? 0 : data.get(groupPosition).getList().size(); } @Override public Object getGroup(int groupPosition) { return null; } @Override public Object getChild(int groupPosition, int childPosition) { return null; } @Override public long getGroupId(int groupPosition) { return 0; } @Override public long getChildId(int groupPosition, int childPosition) { return 0; } @Override public boolean hasStableIds() { return false; } @Override public View getGroupView(final int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { Baen.DataBean dataBean = data.get(groupPosition); GViewHolder gViewHolder; if (convertView == null) { convertView = View.inflate(parent.getContext(), R.layout.item_cart_parent, null); gViewHolder = new GViewHolder(convertView); convertView.setTag(gViewHolder); } else { gViewHolder = (GViewHolder) convertView.getTag(); } gViewHolder.sellerNameTv.setText(dataBean.getSellerName()); boolean currentSellerAllProductSelected = isCurrentSellerAllProductSelected(groupPosition); gViewHolder.sellerCb.setChecked(currentSellerAllProductSelected); gViewHolder.sellerCb.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d(TAG,"monCartListChangeListener"); monCartListChangeListener.onSellerCheckedChange(groupPosition); } }); return convertView; } //当前商家所有商品是否被选中 public boolean isCurrentSellerAllProductSelected(int groupPosition) { Baen.DataBean dataBean = data.get(groupPosition); List<Baen.ListBaen> list = dataBean.getList(); for (Baen.ListBaen listBaen : list) { if (listBaen.getSelected() == 0) { return false; } } return true; } @Override public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { Baen.DataBean dataBean = data.get(groupPosition); List<Baen.ListBaen> list = dataBean.getList(); CViewHolder cViewHolder; if (convertView == null) { convertView = View.inflate(parent.getContext(), R.layout.item_cart_child, null); cViewHolder = new CViewHolder(convertView); convertView.setTag(cViewHolder); } else { cViewHolder = (CViewHolder) convertView.getTag(); } Baen.ListBaen listBaen = list.get(childPosition); String title = listBaen.getTitle(); String images = list.get(childPosition).getImages(); String[] split = images.split("\\|"); //单价 cViewHolder.priceChilid.setText(listBaen.getPrice() + ""); cViewHolder.chiidCheckbox.setChecked(listBaen.getSelected()==1); //图片 ImageLoader.getInstance().displayImage(split[0], cViewHolder.chilidImage, MyApp.getOptions()); cViewHolder.chiidCheckbox.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d("TAG","checkbox"); if (monCartListChangeListener!=null){ monCartListChangeListener.onProductCheckedChange(groupPosition,childPosition); } } }); cViewHolder.addRemoveView.setNb(listBaen.getNum()); cViewHolder.addRemoveView.setOnNumberChangeListener(new MyAddSubView.OnNumberChangeListener() { @Override public void onNumberChange(int num) { monCartListChangeListener.onProductNumberChange(groupPosition,childPosition,num); } }); cViewHolder.titleText.setText(title); return convertView; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return false; } //所有的商品是否被选中 public boolean isAllProductsSelected() { for (int i = 0; i < data.size(); i++) { Baen.DataBean dataBean = data.get(i); List<Baen.ListBaen> list = dataBean.getList(); for (int j = 0; j < list.size(); j++) { if (list.get(j).getSelected() == 0) { return false; } } } return true; } //总价格 public float Totalcost() { float totoprice = 0; for (int i = 0; i < data.size(); i++) { Baen.DataBean dataBean = data.get(i); List<Baen.ListBaen> list = dataBean.getList(); for (int j = 0; j < list.size(); j++) { double price = list.get(j).getPrice(); int num = list.get(j).getNum(); totoprice += price * num; } } return totoprice; } //总数量 public int thetotalAmount() { int totoNber = 0; for (int i = 0; i < data.size(); i++) { Baen.DataBean dataBean = data.get(i); List<Baen.ListBaen> list = dataBean.getList(); for (int j = 0; j < list.size(); j++) { int num = list.get(j).getNum(); totoNber += num; } } return totoNber; } //当商家得checkbox被点击得时候调用,设置当前商家得所有商品得状态 public void changeCurrentSellerAllProductsStatus(int groupPosition, boolean isSelected) { Baen.DataBean dataBean = data.get(groupPosition); List<Baen.ListBaen> list = dataBean.getList(); for (int i = 0; i < list.size(); i++) { Baen.ListBaen listBaen = list.get(i); listBaen.setSelected(isSelected ? 1 : 0); } } //当商品得checkbox被点击得时候调用,改变当前商品状态 public void changeCurrentProductStatus(int groupPosition, int childPosition) { Log.d("TAG","来过"); Baen.DataBean dataBean = data.get(groupPosition); List<Baen.ListBaen> list = dataBean.getList(); Baen.ListBaen listBaen = list.get(childPosition); listBaen.setSelected(listBaen.getSellerid() == 0 ? 1 : 0); } //当加减器被点击得时候调用,改变当前商品得数量 public void changeCurrentProductNumber(int groupPosition, int childPosition, int number) { Baen.DataBean dataBean = data.get(groupPosition); List<Baen.ListBaen> list = dataBean.getList(); Baen.ListBaen listBaen = list.get(childPosition); listBaen.setNum(number); } //设置所有商品得状态 public void changeAllProductsStatus(boolean selected) { for (int i = 0; i < data.size(); i++) { Baen.DataBean dataBean = data.get(i); List<Baen.ListBaen> list = dataBean.getList(); for (int j = 0; j < list.size(); j++) { list.get(j).setSelected(selected ? 1 : 0); } } } static class GViewHolder { @BindView(R.id.seller_cb) CheckBox sellerCb; @BindView(R.id.seller_name_tv) TextView sellerNameTv; GViewHolder(View view) { ButterKnife.bind(this, view); } } onCartListChangeListener monCartListChangeListener; public void setMonCartListChangeListener(onCartListChangeListener monCartListChangeListener) { this.monCartListChangeListener = monCartListChangeListener; } public interface onCartListChangeListener { void onSellerCheckedChange(int groupPosition); void onProductCheckedChange(int groupPosition, int childPosition); void onProductNumberChange(int groupPosition, int childPosition, int number); } static class CViewHolder { @BindView(R.id.chiid_checkbox) CheckBox chiidCheckbox; @BindView(R.id.chilid_image) ImageView chilidImage; @BindView(R.id.title_text) TextView titleText; @BindView(R.id.price_chilid) TextView priceChilid; @BindView(R.id.add_remove_view) MyAddSubView addRemoveView; CViewHolder(View view) { ButterKnife.bind(this, view); } } }
Adapter 购物
最新推荐文章于 2024-06-16 09:48:22 发布