购物车

xiaoxiao2025-10-15  12

package soexample.umeng.com.xuzaizahuopu.presenter; import android.content.Context; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import com.google.gson.Gson; import org.w3c.dom.Text; import java.util.ArrayList; import java.util.List; import soexample.umeng.com.xuzaizahuopu.R; import soexample.umeng.com.xuzaizahuopu.adapter.MyShoppingCarAdapter; import soexample.umeng.com.xuzaizahuopu.listener.HttpListener; import soexample.umeng.com.xuzaizahuopu.model.CarBean; import soexample.umeng.com.xuzaizahuopu.net.OkHttp; import soexample.umeng.com.xuzaizahuopu.view.AppDelegate; public class ShoppingCarFragmentPresenter extends AppDelegate implements View.OnClickListener { private Context context; private TextView car_manyAll; private RecyclerView car_recyclerView; private ImageView car_selectAll; private TextView car_shopNum; private TextView car_textView_compile; private String url = "http://www.zhaoapi.cn/product/getCarts?uid=71"; private MyShoppingCarAdapter adapter; private List<CarBean.DataBean> list = new ArrayList<>(); @Override protected int getLayoutId() { return R.layout.shoppingcar_layout; } @Override public void initData() { super.initData(); car_manyAll = get(R.id.car_manyAll); car_recyclerView = get(R.id.car_recyclerView); car_selectAll = get(R.id.car_selectAll); car_shopNum = get(R.id.car_shopNum); car_textView_compile = get(R.id.car_TextView_compile); setClick(this,R.id.car_selectAll); //设置布局管理器 LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context); linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); car_recyclerView.setLayoutManager(linearLayoutManager); doHttp(); //设置适配器 adapter = new MyShoppingCarAdapter(context); car_recyclerView.setAdapter(adapter); adapter.setCallBack(new MyShoppingCarAdapter.CallBack() { @Override public void onBack(List<CarBean.DataBean> listBeans) { double priceAll = 0; int numAll = 0; int num = 0; for (int i = 0; i <listBeans.size() ; i++) { List<CarBean.DataBean.ListBean> list = listBeans.get(i).getList(); for(int a=0;a<list.size();a++){ numAll=numAll+list.get(a).getNum(); if (list.get(a).isIscheck()){ num = num+list.get(a).getNum(); priceAll = priceAll+(list.get(a).getPrice()*list.get(a).getNum()); } } } if (num<numAll){ car_selectAll.setImageResource(R.drawable.cricle_no); isClick = true; }else{ car_selectAll.setImageResource(R.drawable.cricle_yes); isClick =false; } car_manyAll.setText("合计:"+priceAll+""); car_shopNum.setText("结算:"+num); } }); } private void doHttp() { new OkHttp().get(url).setListener(new HttpListener() { @Override public void onSuccess(String data) { Gson gson = new Gson(); CarBean carBean = gson.fromJson(data, CarBean.class); list = carBean.getData(); adapter.setList(list); } @Override public void oonFailure(String data) { } }); } @Override public void getContext(Context context) { this.context = context; } private boolean isClick = true; @Override public void onClick(View view) { switch (view.getId()){ case R.id.car_selectAll: if (isClick){ car_selectAll.setImageResource(R.drawable.cricle_yes); select(true); isClick = false; }else{ car_selectAll.setImageResource(R.drawable.cricle_no); select(false); isClick = true; } break; } } private void select(boolean flag) { double price = 0; int num = 0; for (int i = 0; i <list.size() ; i++) { List<CarBean.DataBean.ListBean> listchild = list.get(i).getList(); for(int a= 0;a<listchild.size();a++){ num++; price = listchild.get(a).getPrice()+price; listchild.get(a).setIscheck(flag); } } if (flag){ car_manyAll.setText("合计:"+price); car_shopNum.setText("结算:"+num); }else{ car_shopNum.setText("合计:0.00"); car_manyAll.setText("结算:(0)"); } adapter.notifyDataSetChanged(); } }

 

package soexample.umeng.com.xuzaizahuopu.adapter; import android.content.Context; import android.support.annotation.NonNull; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.ViewGroup; import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView; import org.w3c.dom.Text; import java.util.ArrayList; import java.util.List; import soexample.umeng.com.xuzaizahuopu.R; import soexample.umeng.com.xuzaizahuopu.model.CarBean; public class MyShoppingCarAdapter extends RecyclerView.Adapter<MyShoppingCarAdapter.MyViewHolder> { private Context context; private List<CarBean.DataBean> list = new ArrayList<>(); public MyShoppingCarAdapter(Context context) { this.context = context; } @NonNull @Override public MyShoppingCarAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = View.inflate(context, R.layout.car_layout, null); MyViewHolder holder = new MyViewHolder(view); holder.textView = view.findViewById(R.id.name); holder.recyclerView =view.findViewById(R.id.recyclerView); return holder; } @Override public void onBindViewHolder(@NonNull MyShoppingCarAdapter.MyViewHolder holder, int position) { holder.textView.setText(list.get(position).getSellerName()); createChildAdapter(context,list.get(position).getList(),holder.recyclerView); } private void createChildAdapter(Context context, List<CarBean.DataBean.ListBean> listchild, RecyclerView recyclerView) { //创建布局管理器 LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context); linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); //设置布局管理器 recyclerView.setLayoutManager(linearLayoutManager); MyShopingCarChildAdapter shopingCarChildAdapter = new MyShopingCarChildAdapter(listchild,context); recyclerView.setAdapter(shopingCarChildAdapter); shopingCarChildAdapter.setCallBack(new MyShopingCarChildAdapter.CallBack() { @Override public void onBack() { callBack.onBack(list); } }); } @Override public int getItemCount() { return list.size(); } public void setList(List<CarBean.DataBean> list) { list.remove(0); this.list = list; notifyDataSetChanged(); } public class MyViewHolder extends RecyclerView.ViewHolder { TextView textView; RecyclerView recyclerView; public MyViewHolder(View itemView) { super(itemView); } } public void setCallBack(CallBack callBack) { this.callBack = callBack; } private CallBack callBack; public interface CallBack{ void onBack(List<CarBean.DataBean> listBeans); } } package soexample.umeng.com.xuzaizahuopu.adapter; import android.content.Context; import android.support.annotation.NonNull; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; import java.util.List; import soexample.umeng.com.xuzaizahuopu.R; import soexample.umeng.com.xuzaizahuopu.model.CarBean; public class MyShopingCarChildAdapter extends RecyclerView.Adapter<MyShopingCarChildAdapter.MyViewHolder> { private List<CarBean.DataBean.ListBean> list; private Context context; private int num; public MyShopingCarChildAdapter(List<CarBean.DataBean.ListBean> list, Context context) { this.list = list; this.context = context; } @NonNull @Override public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = View.inflate(context, R.layout.car_item_layout, null); MyViewHolder holder = new MyViewHolder(view); holder.car_item_add = view.findViewById(R.id.car_item_add); holder.car_item_desc =view.findViewById(R.id.car_item_desc); holder.car_item_Edit_Text_num = view.findViewById(R.id.car_item_Edit_Text_num); holder.car_item_ImageView_select = view.findViewById(R.id.car_item_ImageView_select); holder.car_item_ImageView_Shop =view.findViewById(R.id.car_item_ImageView_Shop); holder.car_item_jian =view.findViewById(R.id.car_item_jian); holder.car_item_many =view.findViewById(R.id.car_item_many); holder.car_item_title =view.findViewById(R.id.car_item_title); return holder; } @Override public void onBindViewHolder(@NonNull final MyViewHolder holder, final int position) { holder.car_item_title.setText(list.get(position).getTitle()); holder.car_item_desc.setText(list.get(position).getSubhead()); holder.car_item_many.setText(list.get(position).getPrice()+""); Glide.with(context).load(list.get(position).getImages().split("\\|")[0]).into(holder.car_item_ImageView_Shop); if (list.get(position).isIscheck()){ holder.car_item_ImageView_select.setImageResource(R.drawable.cricle_yes); }else{ holder.car_item_ImageView_select.setImageResource(R.drawable.cricle_no); } //单选按钮 holder.car_item_ImageView_select.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (list.get(position).isIscheck()){ list.get(position).setIscheck(false); }else{ list.get(position).setIscheck(true); } notifyItemChanged(position); callBack.onBack(); } }); holder.car_item_Edit_Text_num.setText(list.get(position).getNum()+""); //商品数量增加 holder.car_item_add.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { int num = list.get(position).getNum(); num++; list.get(position).setNum(num); notifyItemChanged(position); callBack.onBack(); } }); //商品数量减少 holder.car_item_jian.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { int num = list.get(position).getNum(); num--; list.get(position).setNum(num); notifyItemChanged(position); callBack.onBack(); } }); } @Override public int getItemCount() { return list.size(); } public class MyViewHolder extends RecyclerView.ViewHolder { ImageView car_item_add,car_item_jian,car_item_ImageView_Shop,car_item_ImageView_select; EditText car_item_Edit_Text_num; TextView car_item_desc,car_item_title,car_item_many; public MyViewHolder(View itemView) { super(itemView); } } public void setCallBack(CallBack callBack) { this.callBack = callBack; } private CallBack callBack; public interface CallBack{ void onBack(); } } package dw.dw.com.xiaoxuzahuopu.adapter; import android.content.Context; import android.support.annotation.NonNull; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import java.util.ArrayList; import java.util.List; import dw.dw.com.xiaoxuzahuopu.R; import dw.dw.com.xiaoxuzahuopu.model.ShopCarBean; /** * author:DuWei * date:2018/11/09 * 购物车外层商家 */ public class ShopCarAdapter extends RecyclerView.Adapter<ShopCarAdapter.MyViewHolder> { private List<ShopCarBean.DataBean> list = new ArrayList<>(); private Context context; private ShopCarChildAdapter adapter; private List<ShopCarBean.DataBean.ListBean> childlist; public ShopCarAdapter(Context context) { this.context = context; } @NonNull @Override public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = View.inflate(context, R.layout.shopcar_item_layout, null); MyViewHolder holder = new MyViewHolder(view); holder.textView = view.findViewById(R.id.shop_car_item_TextView_shop); holder.recyclerView = view.findViewById(R.id.shop_car_item_shop_RecyclerView); holder.imageView = view.findViewById(R.id.shop_car_item_ImageView_shop_check); return holder; } @Override public void onBindViewHolder(@NonNull final MyViewHolder holder, final int position) { //商家名字赋值 holder.textView.setText(list.get(position).getSellerName()); //内层商品的adapter设置 createChildAdapter(holder.recyclerView, context, list.get(position).getList()); //内层商品接口回调 adapter.setDataCallBack(new ShopCarChildAdapter.DataCallBack() { @Override public void onBack() { //商家与内部商品按钮联动 shopCheck(holder, position); dataCallBack.onBack(list); } }); //商家单选框设置 if (list.get(position).isShopCheck()) {//选中 holder.imageView.setImageResource(R.drawable.checkyes);//(设置为选中图片) } else {//未选中 holder.imageView.setImageResource(R.drawable.checkno);//(设置为未选中图片) } //商家选框按钮 holder.imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { shopClick(position); notifyItemChanged(position);//刷新单个条目 dataCallBack.onBack(list);//接口回调 } }); } //商家选框按钮逻辑 private void shopClick(int position) { childlist = list.get(position).getList();//内层商品集合 if (list.get(position).isShopCheck()) {//选中状态点击变为未选中 for (int i = 0; i < childlist.size(); i++) { childlist.get(i).setCheck(false);//内部商品按钮开关(关闭) } list.get(position).setShopCheck(false);//外层商家按钮开关(关闭) } else {//未选中状态点击变为选中 for (int i = 0; i < childlist.size(); i++) { childlist.get(i).setCheck(true);//内部商品按钮开关(开启) } list.get(position).setShopCheck(true);//外层商家按钮开关(开启) } } //商家与内部商品按钮联动 private void shopCheck(MyViewHolder holder, int position) { int num = 0; int numAll = 0; List<ShopCarBean.DataBean.ListBean> childlist = list.get(position).getList(); for (int i = 0; i < childlist.size(); i++) { numAll++; if (childlist.get(i).isCheck()) { num++; } } if (num == numAll) { list.get(position).setShopCheck(true); holder.imageView.setImageResource(R.drawable.checkyes); } else { list.get(position).setShopCheck(false); holder.imageView.setImageResource(R.drawable.checkno); } } //购物车内层商品 private void createChildAdapter(RecyclerView recyclerView, Context context, final List<ShopCarBean.DataBean.ListBean> list) { //设置布局管理器 LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context); recyclerView.setLayoutManager(linearLayoutManager); adapter = new ShopCarChildAdapter(list, context); recyclerView.setAdapter(adapter); } //条目总数 @Override public int getItemCount() { return list.size(); } //获取数据 public void setList(List<ShopCarBean.DataBean> list) { this.list = list; notifyDataSetChanged(); } //ViewHolder public class MyViewHolder extends RecyclerView.ViewHolder { TextView textView; RecyclerView recyclerView; ImageView imageView; public MyViewHolder(View itemView) { super(itemView); } } //接口 private DataCallBack dataCallBack; public void setDataCallBack(DataCallBack dataCallBack) { this.dataCallBack = dataCallBack; } public interface DataCallBack { void onBack(List<ShopCarBean.DataBean> list); } }

 

转载请注明原文地址: https://www.6miu.com/read-5037945.html

最新回复(0)