public class CarAdpter extends BaseExpandableListAdapter implements DeleteView{ private List<CarBean.DataBean> list; private Context context; public boolean isCheckAll = false; private ImageView img_check_all; private TextView text_Price; DeletePresenters deletePresenters; public void setText_Price(TextView text_Price) { this.text_Price = text_Price; } public void setImg_check_all(ImageView img_check_all) { this.img_check_all = img_check_all; } public CarAdpter(Context context) { this.context = context; this.list = new ArrayList<>(); } public void expandGroup(ExpandableListView listView) { for (int i = 0; i < getGroupCount(); i++) { listView.expandGroup(i); } } public void addData(List<CarBean.DataBean> dataBeans){ list.addAll(dataBeans); notifyDataSetChanged(); } public void checkAll(){ isCheckAll = true; for (CarBean.DataBean dataBean : list){ dataBean.setIsclick(true); for (CarBean.DataBean.ListBean listBean : dataBean.getList()){ listBean.setSelected(1); } } getPrice(); updateUi(); } public void noCheckAll(){ isCheckAll = false; for (CarBean.DataBean dataBean : list){ dataBean.setIsclick(false); for (CarBean.DataBean.ListBean listBean : dataBean.getList()){ listBean.setSelected(0); } } getPrice(); updateUi(); } @Override public int getGroupCount() { return list.size(); } @Override public int getChildrenCount(int i) { return list.get(i).getList().size(); } @Override public CarBean.DataBean getGroup(int i) { return list.get(i); } @Override public CarBean.DataBean.ListBean getChild(int i, int i1) { return list.get(i).getList().get(i1); } @Override public long getGroupId(int i) { CarBean.DataBean group = getGroup(i); return group.getSellerid(); } @Override public long getChildId(int i, int i1) { CarBean.DataBean.ListBean child = getChild(i, i1); return child.getPid(); } @Override public boolean hasStableIds() { return false; } public void updateUi(){ if (isCheckAll) { img_check_all.setImageResource(R.drawable.ic_checked); } else { img_check_all.setImageResource(R.drawable.ic_uncheck); } notifyDataSetChanged();; } public void getPrice(){ int sum = 0; //未选中的数量 int uncheck = 0; //购物车商品数量 int psum = 0; for (CarBean.DataBean dataBean : list){ psum = dataBean.getList().size(); if(dataBean.isIsclick()){ for (CarBean.DataBean.ListBean listBeans : dataBean.getList()){ if(listBeans.getSelected() == 1){ int price = (int)Double.parseDouble(listBeans.getPrice()+""); sum = sum+price*listBeans.getNum(); }else { uncheck+=1; } } }else { uncheck+=dataBean.getList().size(); } } if(isCheckAll){ img_check_all.setImageResource(R.drawable.ic_checked); }else { img_check_all.setImageResource(R.drawable.ic_uncheck); } text_Price.setText("¥:"+sum); onclikPrice.price(sum); } @Override public View getGroupView(final int i, boolean b, View view, ViewGroup viewGroup) { GroupHolder holder; if(view==null){ view = View.inflate(context,R.layout.cargroup,null); holder = new GroupHolder(view); view.setTag(holder); }else { holder = (GroupHolder) view.getTag(); } holder.textView.setText(list.get(i).getSellerName()); final CarBean.DataBean dataBean = list.get(i); if(dataBean.isIsclick()){ holder.imageView.setImageResource(R.drawable.ic_checked); }else { holder.imageView.setImageResource(R.drawable.ic_uncheck); } holder.imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { List<CarBean.DataBean.ListBean> listBeans = list.get(i).getList(); if(list.get(i).isIsclick()){ list.get(i).setIsclick(false); }else { list.get(i).setIsclick(true); } for (CarBean.DataBean.ListBean listbean : listBeans){ if(list.get(i).isIsclick()){ listbean.setSelected(1); }else { listbean.setSelected(0); } } getPrice(); notifyDataSetChanged(); } }); return view; } @Override public View getChildView(final int i, final int i1, boolean b, View view, ViewGroup viewGroup) { ChildHolder holder; if(view==null){ view = View.inflate(context,R.layout.carchild,null); holder = new ChildHolder(view); view.setTag(holder); }else { holder = (ChildHolder) view.getTag(); } holder.textView1.setText(list.get(i).getList().get(i1).getTitle()); holder.textView2.setText(list.get(i).getList().get(i1).getPrice()+""); String images = list.get(i).getList().get(i1).getImages(); String s = images.split("\\|")[0]; ImageLoader.getInstance().displayImage(s,holder.imageView, App.getoPetions()); final CarBean.DataBean.ListBean child = getChild(i, i1); final int selected = child.getSelected(); if(selected==1){ holder.imageView1.setImageResource(R.drawable.ic_checked); }else { holder.imageView1.setImageResource(R.drawable.ic_uncheck); } deletePresenters = new DeletePresenters(this); holder.imageView1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(list.get(i).getList().get(i1).getSelected()==1){ list.get(i).getList().get(i1).setSelected(0); Log.i("SE",child.getSelected()+""); }else { list.get(i).getList().get(i1).setSelected(1); Log.i("SE",child.getSelected()+""); } notifyDataSetChanged(); clickProductCheck(child,i); } }); holder.addSumView.setSum(child.getNum()); holder.addSumView.setSumClickListener(new AddSumView.SumClickListener() { @Override public void sumClick(int psum) { child.setNum(psum); getPrice(); } }); holder.button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { int pid = child.getPid(); SharedPreferences sharedPreferences = context.getSharedPreferences("mobile.db", Context.MODE_PRIVATE); boolean login = sharedPreferences.getBoolean("login", false); int uid = sharedPreferences.getInt("uid", 0); deletePresenters.getDelete(uid,pid); } }); return view; } private void clickProductCheck(CarBean.DataBean.ListBean product, int spos) { //获取当前商品的店铺信息 CarBean.DataBean group = getGroup(spos); int sum = 0;//统计产品选中数量 for (CarBean.DataBean.ListBean p : group.getList()) { if (p.getSelected() == 1) {//判断当前店铺有无选中产品 sum = +1;//统计数量 } } if (sum == 0) {//无产品选中 group.setIsclick(false); } else {//有产品选中 group.setIsclick(true); } //计算价格 getPrice(); notifyDataSetChanged(); } @Override public boolean isChildSelectable(int i, int i1) { return false; } @Override public void getDeleteList(DeleteCar deleteCar) { Toast.makeText(context,deleteCar.getMsg(),Toast.LENGTH_LONG).show(); } static class GroupHolder{ TextView textView; ImageView imageView; public GroupHolder(View view){ textView = view.findViewById(R.id.cartext); imageView = view.findViewById(R.id.cargroupimage); } } static class ChildHolder{ TextView textView1,textView2; ImageView imageView,imageView1; AddSumView addSumView; Button button; public ChildHolder(View view){ textView1 = view.findViewById(R.id.cartext1); textView2 = view.findViewById(R.id.cartext2); imageView = view.findViewById(R.id.carimage); imageView1 = view.findViewById(R.id.childimageView3); addSumView = view.findViewById(R.id.caraddview); button = view.findViewById(R.id.carbutton2); } } OnclikPrice onclikPrice; public void setOnclikPrice(OnclikPrice onclikPrice) { this.onclikPrice = onclikPrice; } public interface OnclikPrice{ void price(int prcie); } }