public class MyRecAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private Context context; private List<ResultBean.DataBean.ListBean> list; private Map<String,String> map=new HashMap<>(); public MyRecAdapter(Context context) { this.context = context; } //设置数据并更新显示 public void setData(ResultBean resultBean){ if(list==null){ list=new ArrayList<>(); } //第一层遍历商家 for (ResultBean.DataBean shop:resultBean.getData()){ map.put(shop.getSellerid(),shop.getSellerName()); //第二层遍历商品 for (int i=0;i<shop.getList().size();i++){ list.add(shop.getList().get(i)); } } setFirst(list); notifyDataSetChanged(); } public void setFirst(List<ResultBean.DataBean.ListBean> list){ if(list.size()>0){ list.get(0).setIsFirst(1); for (int i=1;i<list.size();i++){ //如果和前一个商品是同一家商店的 if(list.get(i).getSellerid()==list.get(i-1).getSellerid()){ list.get(i).setIsFirst(2); }else{ //设置成1显示商铺 list.get(i).setIsFirst(1); //如果当前条目选中,把当前的商铺也选中 if(list.get(i).isItem_check()){ list.get(i).setShop_check(list.get(i).isItem_check()); } } } } } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view=View.inflate(context, R.layout.recycler_car_item,null); MyShopViewHolder myShopViewHolder=new MyShopViewHolder(view); return myShopViewHolder; } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) { final MyShopViewHolder myShopViewHolder= (MyShopViewHolder) holder; if(list.get(position).getIsFirst()==1){ myShopViewHolder.shop_checkbox.setVisibility(View.VISIBLE); myShopViewHolder.shop_name.setVisibility(View.VISIBLE); //设置shop_checkbox的选中状态 myShopViewHolder.shop_checkbox.setChecked(list.get(position).isShop_check()); myShopViewHolder.shop_name.setText(map.get(String.valueOf(list.get(position).getSellerid()))); }else{ myShopViewHolder.shop_checkbox.setVisibility(View.GONE); myShopViewHolder.shop_name.setVisibility(View.GONE); } myShopViewHolder.item_checkbox.setChecked(list.get(position).isItem_check()); String[] split=list.get(position).getImages().split("\\|"); Glide.with(context).load(split[0]).into(myShopViewHolder.item_icon); myShopViewHolder.item_name.setText(list.get(position).getTitle()); myShopViewHolder.item_price.setText(list.get(position).getPrice()+""); myShopViewHolder.customchange.setEditText(list.get(position).getNum()); //商铺的checkbox点击事件 myShopViewHolder.shop_checkbox.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { list.get(position).setShop_check(!myShopViewHolder.shop_checkbox.isChecked()); for (int i=0;i<list.size();i++){ if(list.get(i).getSellerid()==list.get(position).getSellerid()){ list.get(i).setItem_check(list.get(position).isShop_check()); } } notifyDataSetChanged(); sumList(list); } }); //商品的点击事件 myShopViewHolder.item_checkbox.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { list.get(position).setItem_check(!myShopViewHolder.item_checkbox.isChecked()); for (int i=0;i<list.size();i++){ for (int j=0;j<list.size();j++){ if(list.get(i).getSellerid()==list.get(j).getSellerid()&!list.get(j).isItem_check()){ list.get(i).setShop_check(false); break; }else{ list.get(i).setShop_check(true); } } } notifyDataSetChanged(); sumList(list); } }); myShopViewHolder.item_rublish.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { list.remove(position); setFirst(list); sumList(list); notifyDataSetChanged(); } }); myShopViewHolder.customchange.setCustomListener(new CustomChangeNumView.CustomListener() { @Override public void jiajian(int count) { list.get(position).setNum(count); notifyDataSetChanged(); sumList(list); } }); } //计算总价 private void sumList(List<ResultBean.DataBean.ListBean> list) { int allCount=0; float allMoney=0; boolean allCheck=true; for (int i=0;i<list.size();i++){ if(list.get(i).isItem_check()){ allCount+=list.get(i).getNum(); allMoney+=list.get(i).getNum()*list.get(i).getPrice(); }else{ allCheck=false; } } updateListener.setTotal(allMoney,allCount,allCheck); } @Override public int getItemCount() { return list==null?0:list.size(); } class MyShopViewHolder extends RecyclerView.ViewHolder{ SmoothCheckBox shop_checkbox; TextView shop_name; SmoothCheckBox item_checkbox; ImageView item_icon; TextView item_name; TextView item_price; ImageView item_rublish; CustomChangeNumView customchange; public MyShopViewHolder(View itemView) { super(itemView); shop_checkbox=itemView.findViewById(R.id.shop_checkbox); shop_name=itemView.findViewById(R.id.shop_name); item_checkbox=itemView.findViewById(R.id.item_checkbox); item_icon=itemView.findViewById(R.id.item_icon); item_name=itemView.findViewById(R.id.item_name); item_price=itemView.findViewById(R.id.item_price); item_rublish=itemView.findViewById(R.id.item_rublish); customchange=itemView.findViewById(R.id.customchange); } } UpdateListener updateListener; public void setUpdateListener(UpdateListener updateListener){ this.updateListener=updateListener; } public interface UpdateListener{ void setTotal(float allMoney,int allCount,boolean allCheck); } //全选的方法 public void selectAll(boolean isCheckAll){ for (int i=0;i<list.size();i++){ list.get(i).setItem_check(isCheckAll); list.get(i).setShop_check(isCheckAll); } notifyDataSetChanged(); sumList(list); }
RecyclerView购物车适配器
猜你喜欢
转载自blog.csdn.net/owen_bland/article/details/80186243
今日推荐
周排行