android一级列表购物车
来源:互联网 发布:委托软件开发合同 编辑:程序博客网 时间:2024/03/28 21:52
public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{ private List<GoosBean.DataBean.DatasBean> list; private Context context; //创建自己的构造方法 public MyAdapter(List<GoosBean.DataBean.DatasBean> list, Context context) { this.list = list; this.context = context; } //加载布局 @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.child,parent,false); return new MyViewHolder(view); } //绑定数据 @Override public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) { final GoosBean.DataBean.DatasBean datasBean = list.get(position); final MyViewHolder myViewHolder = (MyViewHolder) holder; myViewHolder.cbChild.setChecked(datasBean.isChecked()); myViewHolder.tv_tel.setText(datasBean.getType_name()); myViewHolder.tv_content.setText(datasBean.getMsg()); myViewHolder.tv_time.setText(datasBean.getAdd_time()); myViewHolder.tv_price.setText(datasBean.getPrice() + ""); myViewHolder.myView.setNum(datasBean.getNum() + ""); //给checkbox设置点击事件 myViewHolder.cbChild.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //首先改变当前checkbox的状态值 datasBean.setChecked(myViewHolder.cbChild.isChecked()); PriceAndCountEvent compute = compute(); EventBus.getDefault().post(compute); //如果改变 if(myViewHolder.cbChild.isChecked()){ //查看是否全选 if(isAllCbSelect()){ //改变全选按钮的状态 changeAllCbState(true); } }else{ changeAllCbState(false); } notifyDataSetChanged(); } }); //点击增加按钮 myViewHolder.myView.setAddClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //获取数量和价钱 int num = myViewHolder.myView.getNum(); num++; datasBean.setNum(num); //如果勾选了, if(myViewHolder.cbChild.isChecked()){ EventBus.getDefault().post(compute()); } notifyDataSetChanged(); } }); //减少按钮的点击 myViewHolder.myView.setDelClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //获取数量和价钱 int num = myViewHolder.myView.getNum(); if(num==1){ return; } num--; datasBean.setNum(num); //如果勾选了, if(myViewHolder.cbChild.isChecked()){ EventBus.getDefault().post(compute()); } notifyDataSetChanged(); } }); //删除按钮的 myViewHolder.tv_del.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { list.remove(position); //发送价钱和数量 EventBus.getDefault().post(compute()); //刷新 notifyDataSetChanged(); } }); } @Override public int getItemCount() { return list.size(); }//创建自定义viewholder,继承viewholder class MyViewHolder extends RecyclerView.ViewHolder{ private final CheckBox cbChild; private final TextView tv_tel; private final TextView tv_content; private final TextView tv_time; private final TextView tv_price; private MyView myView; private final TextView tv_del; public MyViewHolder(View itemView) { super(itemView); cbChild = (CheckBox) itemView.findViewById(R.id.cb_child); tv_tel = (TextView) itemView.findViewById(R.id.tv_tel); tv_content = (TextView) itemView.findViewById(R.id.tv_content); tv_time = (TextView) itemView.findViewById(R.id.tv_time); tv_price = (TextView) itemView.findViewById(R.id.tv_pri); tv_del = (TextView) itemView.findViewById(R.id.tv_del); myView = (MyView) itemView.findViewById(R.id.mv); } } //查看checkbox是否全选 public boolean isAllCbSelect(){ for (int i = 0; i <list.size() ; i++) { GoosBean.DataBean.DatasBean datasBean = list.get(i); if(!datasBean.isChecked()){ return false; } } return true; } //改变全选按钮的状态 public void changeAllCbState(boolean flag){ MessageEvent messageEvent = new MessageEvent(); messageEvent.setChecked(flag); EventBus.getDefault().post(messageEvent); } //创建一个方法传递价钱和数量 public PriceAndCountEvent compute(){ int price = 0; int count = 0; for (int i = 0; i <list.size() ; i++) { GoosBean.DataBean.DatasBean datasBean = list.get(i); //如果勾选了 if(datasBean.isChecked()){ //进行价钱和数量的++ count += datasBean.getNum(); price += datasBean.getNum()*datasBean.getPrice(); } } PriceAndCountEvent priceAndCountEvent = new PriceAndCountEvent(); priceAndCountEvent.setCount(count); priceAndCountEvent.setPrice(price); return priceAndCountEvent; } //设置全选,反选的方法(点击全选,改变列表的状态值) public void allSelect(boolean flag){ for (int i = 0; i <list.size() ; i++) { GoosBean.DataBean.DatasBean datasBean = list.get(i); datasBean.setChecked(flag); } EventBus.getDefault().post(compute()); notifyDataSetChanged(); }}
阅读全文
0 0
- android一级列表购物车
- 一级列表购物车
- 一级列表购物车
- 购物车一级列表
- 一级列表的购物车
- 一级列表购物车完整版
- 一级列表的购物车
- 仿购物车一级列表
- 购物车一级列表布局
- MVP一级列表购物车自定义View
- Android一级购物车简单实现
- android 实现简单的一级购物车
- 简单实现 一级列表购物车(固定数据)
- 购物车一级列表的简单实现(访问接口数据)
- 一级列表购物车的简单实现(网络接口)
- 购物车(map,一级列表,view绘制加减号)
- 一级购物车
- 一级购物车
- C#获取计算机上网的公网ip和地理位置
- Spring的@Scheduled实现定时任务
- 什么是html5
- 大学缺少项目教学,他在传智播客郑州校区获得实战经验
- centos7+tomcat部署JavaWeb项目详细步骤
- android一级列表购物车
- 怎么安装tomcat
- java web项目读取properties文件
- CentOS 7新装系统无网络情况
- startService,bindServie混用之onDestroy不被调用的处理方法
- SD卡数据丢失,你需要EasyRecovery!
- JavaScript函数基础练习
- GDB调试器的用法
- POI实现Excel上传及下载