package com.lbp.yuekao.adapter; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseExpandableListAdapter; import android.widget.CheckBox; import android.widget.ExpandableListView; import android.widget.ImageView; import android.widget.TextView; import com.lbp.yuekao.R; import com.lbp.yuekao.bean.GoosBean; import com.lbp.yuekao.bean.MessageEvent; import com.lbp.yuekao.bean.PriceAndCountEvent; import org.greenrobot.eventbus.EventBus; import java.util.List; /** * Created by Administrator on 2018/1/17 0017. */ public class MyExAdapter extends BaseExpandableListAdapter { private Context context; private List<GoosBean.DataBean> groupList; private List<List<GoosBean.DataBean.DatasBean>> childList; private final LayoutInflater inflater; public MyExAdapter(Context context, List<GoosBean.DataBean> groupList, List<List<GoosBean.DataBean.DatasBean>> childList) { this.context = context; this.groupList = groupList; this.childList = childList; inflater = LayoutInflater.from(context); } @Override public int getGroupCount() { return groupList.size(); } @Override public int getChildrenCount(int i) { return childList.get(i).size(); } @Override public Object getGroup(int i) { return groupList.get(i); } @Override public Object getChild(int i, int i1) { return childList.get(i).get(i1); } @Override public long getGroupId(int i) { return i; } @Override public long getChildId(int i, int i1) { return i1; } @Override public boolean hasStableIds() { return false; } @Override public View getGroupView(final int i, boolean b, View view, ViewGroup viewGroup) { View view1; final GroupViewHolder groupViewHolder; if(view==null){ groupViewHolder = new GroupViewHolder(); view1 = inflater.inflate(R.layout.item_parent_market, null); groupViewHolder.cbGroup = view1.findViewById(R.id.cb_parent); groupViewHolder.tv_number = view1.findViewById(R.id.tv_number); view1.setTag(groupViewHolder); } else{ view1 = view; groupViewHolder = (GroupViewHolder) view1.getTag(); } final GoosBean.DataBean dataBean = groupList.get(i); groupViewHolder.cbGroup.setChecked(dataBean.isChecked()); groupViewHolder.tv_number.setText(dataBean.getTitle()); groupViewHolder.cbGroup.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { dataBean.setChecked(groupViewHolder.cbGroup.isChecked()); changeChildCbState(i,groupViewHolder.cbGroup.isChecked()); EventBus.getDefault().post(compute()); changeAllCbState(isAllGroupCbSelected()); notifyDataSetChanged(); } }); return view1; } @Override public View getChildView(final int i, final int i1, boolean b, View view, ViewGroup viewGroup) { View view1; final ChildViewHolder holder ; if(view==null){ holder = new ChildViewHolder(); view1 = inflater.inflate(R.layout.item_child_market, null); holder.cbChild = view1.findViewById(R.id.cb_child); holder.tv_tel = view1.findViewById(R.id.tv_tel); holder.tv_content = view1.findViewById(R.id.tv_content); holder.tv_time = view1.findViewById(R.id.tv_time); holder.tv_price = view1.findViewById(R.id.tv_pri); holder.tv_del = view1.findViewById(R.id.tv_del); holder.iv_add = view1.findViewById(R.id.iv_add); holder.iv_del = view1.findViewById(R.id.iv_del); holder.tv_num = view1.findViewById(R.id.tv_num); view1.setTag(holder); }else{ view1=view; holder = (ChildViewHolder) view1.getTag(); } final GoosBean.DataBean.DatasBean datasBean = childList.get(i).get(i1); holder.cbChild.setChecked(datasBean.isChecked()); holder.tv_tel.setText(datasBean.getType_name()); holder.tv_content.setText(datasBean.getMsg()); holder.tv_time.setText(datasBean.getAdd_time()); holder.tv_price.setText(datasBean.getPrice() + ""); holder.tv_num.setText(datasBean.getNum() + ""); holder.cbChild.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { datasBean.setChecked(holder.cbChild.isChecked()); PriceAndCountEvent priceAndCountEvent = compute(); EventBus.getDefault().post(priceAndCountEvent); if (holder.cbChild.isChecked()){ if(isAllChildCbSelected(i)){ changGroupCbState(i,true); changeAllCbState(isAllGroupCbSelected()); } }else{ changGroupCbState(i,false); changeAllCbState(isAllGroupCbSelected()); } notifyDataSetChanged(); } }); holder.iv_add.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int num = datasBean.getNum(); holder.tv_num.setText(++num + ""); datasBean.setNum(num); if (holder.cbChild.isChecked()) { PriceAndCountEvent priceAndCountEvent = compute(); EventBus.getDefault().post(priceAndCountEvent); } } }); holder.iv_del.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int num = datasBean.getNum(); if (num == 1) { return; } holder.tv_num.setText(--num + ""); datasBean.setNum(num); if (holder.cbChild.isChecked()) { PriceAndCountEvent priceAndCountEvent = compute(); EventBus.getDefault().post(priceAndCountEvent); } } }); holder.tv_del.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { List<GoosBean.DataBean.DatasBean> datasBeen = childList.get(i); GoosBean.DataBean.DatasBean remove = datasBeen.remove(i1); if (datasBeen.size() == 0) { childList.remove(i); groupList.remove(i); } EventBus.getDefault().post(compute()); notifyDataSetChanged(); } }); return view1; } @Override public boolean isChildSelectable(int i, int i1) { return false; } private void changeChildCbState(int groupposition ,boolean flag){ List<GoosBean.DataBean.DatasBean> beans = childList.get(groupposition); for (int i = 0; i <beans.size() ; i++) { GoosBean.DataBean.DatasBean bean = beans.get(i); bean.setChecked(flag); } } private void changeAllCbState(boolean flag) { MessageEvent event = new MessageEvent(); event.setChecked(flag); EventBus.getDefault().post(event); } private void changGroupCbState(int groupPosition, boolean flag) { GoosBean.DataBean dataBean = groupList.get(groupPosition); dataBean.setChecked(flag); } private boolean isAllGroupCbSelected() { for (int i = 0; i < groupList.size(); i++) { GoosBean.DataBean dataBean = groupList.get(i); if (!dataBean.isChecked()) { return false; } } return true; } class GroupViewHolder { CheckBox cbGroup; TextView tv_number; } class ChildViewHolder { CheckBox cbChild; TextView tv_tel; TextView tv_content; TextView tv_time; TextView tv_price; TextView tv_del; ImageView iv_del; ImageView iv_add; TextView tv_num; } private PriceAndCountEvent compute() { int count = 0; int price = 0; for (int i = 0; i < childList.size(); i++) { List<GoosBean.DataBean.DatasBean> datasBeen = childList.get(i); for (int j = 0; j < datasBeen.size(); j++) { GoosBean.DataBean.DatasBean datasBean = datasBeen.get(j); if (datasBean.isChecked()) { price += datasBean.getNum() * datasBean.getPrice(); count += datasBean.getNum(); } } } PriceAndCountEvent priceAndCountEvent = new PriceAndCountEvent(); priceAndCountEvent.setCount(count); priceAndCountEvent.setPrice(price); return priceAndCountEvent; } private boolean isAllChildCbSelected(int groupPosition) { List<GoosBean.DataBean.DatasBean> datasBeen = childList.get(groupPosition); for (int i = 0; i < datasBeen.size(); i++) { GoosBean.DataBean.DatasBean datasBean = datasBeen.get(i); if (!datasBean.isChecked()) { return false; } } return true; } public void changeAllListCbState(boolean flag) { for (int i = 0; i < groupList.size(); i++) { changGroupCbState(i, flag); changeChildCbState(i, flag); } EventBus.getDefault().post(compute()); notifyDataSetChanged(); } } 帮助类package com.lbp.yuekao.bean; /** * Created by peng on 2017/11/17. */ public class MessageEvent { private boolean checked; public boolean isChecked() { return checked; } public void setChecked(boolean checked) { this.checked = checked; } }package com.lbp.yuekao.bean; /** * Created by peng on 2017/11/17. */ public class PriceAndCountEvent { private int price; private int count; public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } public int getCount() { return count; } public void setCount(int count) { this.count = count; } }
相关推荐
通达信强龙趋势幅图指标:从强弱分析到买卖点实战指南
在股票技术分析中,趋势判断一直是交易决策的核心环节。传统指标通常依赖均线交叉或MACD金叉来确认趋势,但这种确认机制天然存在滞后性,往往等信号明确时行情已走过大半。针对这一问题,基于价格位置、量能配合和均线结构三个维度综合打分的思想逐渐受到关注,通过量化个股所处强弱区间,帮助投资者更快识别强势股与风险信号。这类强弱分析工具不仅适用于刚接触公式编辑的新手,也能为有经验的交易者提供一把可视化的“强度刻度尺”。在实际应用中,结合回踩低吸、离场判断等交易场景,能够有效提升买卖点的把握能力。本文详细解析通达信强龙趋势
购物车
//MainActivity 页面package guobao.bwie.com.gwc;import android.app.Activity;import android.content.Context;import android.content.DialogInterface;import android.os.Bundle;import android.os.Handler;import
CyberChef本地搭建
CyberChef本地搭建
二级购物车的Adapter判断
import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseExpandableListAdapter; import android.widget.Check
生存分析机器学习问题
然而,随着人工智能 (AI) 和机器学习 (ML) 的兴起,科学家现在能够开发更复杂的模型,揭示这些数据集中的模式和特征,从而为癌症的生物学、诊断、预后、治疗和预后提供新的见解。病情更重的患者可能接受更强(或更弱)的治疗,导致治疗方案与不良预后(死亡)强相关。数据集中包含失访或研究结束时仍存活的患者(删失数据),他们的真实生存时间未知,仅知道其存活时间不低于观察到的最后一次随访时间。优先选择参数少、结构简单的模型(如带强正则化的线性模型、简单树模型),避免复杂模型(如深度神经网络)。时刻的状态是未知的。
从AAAI 2025被拒到ACM MM 2025录用:我的论文投稿经验与教训总结
本文分享了作者从AAAI 2025被拒到ACM MM 2025录用的论文投稿经验与教训。详细解析了格式要求、可复现性清单等关键细节,提供了精准转投策略和提升录用概率的实用技巧,帮助研究者避免常见错误并优化投稿策略。
二级列表购物车适配器啊
package com.example.aason.zhushayuekaomini.adapter; import android.content.Context; import android.support.annotation.NonNull; import android.support.v7.widget.RecyclerView; import android.view.Layout...
vs code , 配置 claude code 插件, 默认选项 : --dangerously-skip-permission
摘要:本文介绍如何在VS Code中为Claude Code插件配置--dangerously-skip-permission参数,包含两种方法:图形界面设置(适合新手)和直接编辑settings.json(精准配置)。该参数会跳过权限检查,仅建议在本地测试环境中使用。配置后需通过命令面板验证参数是否生效,并注意安全风险,避免在生产环境使用。多参数配置时需用数组格式,不同版本插件可能键名略有差异。
android二级列表购物车
一.导入EventBus的依赖 compile 'org.greenrobot:eventbus:3.1.1' eventBus必须注册 EventBus.getDefault().register(this); 必销毁 //销毁方法 @Override protected void onDestroy() { super.onDestroy();
MicroCap声学仿真介绍(一)
5-频率上下限选择,需要注意的是,第一个数字是上限,第二个数字是下限,如果填反了,会有报错提示;下三角可以选择“Auto”、“linear”、“log”和“list”,设置的是频率点之间的距离和频率点的数量。Component是用来选择部件的模块,如上图所示,声学仿真常用到的是“Electroacoustic Macros AC”、“Electroacoustic Macros TR”、“NXP Transducers”以及“NXP HD components”。3是声学部件,是声学仿真中常用的部件。
[工作流节点10] 获取多条数据并循环执行 —— 明道云批处理自动化实战
本文系统介绍了明道云工作流中"获取多条数据+循环执行"的批处理功能。该功能通过筛选数据集合并逐条处理,适用于批量通知、数据更新等场景。文章详细解析了功能配置方法,包括数据筛选、循环设置和异常处理,并提供了合同到期提醒等典型应用案例。同时强调了数据量控制、分批处理、错误处理等优化策略,帮助用户实现高效批量自动化。这一功能组合能将业务从单条处理升级为批量驱动,显著提升工作效率。
购物车二级列表全选、反选/适配器
public class Frag01 extends Fragment implements BaseView { private RecyclerView mRecycler; private TextView mTvPrice; private TextView mTvMoney; private ShopCarAdapter adapter; private BasePresenter p...
完整功能-《网络安全创新实践》:设计并实现一种基于Npcap的网络嗅探器(直接能运行cpp的MFC代码+实验报告)
《网络安全创新实践》:设计并实现一种基于Npcap的网络嗅探器。(直接能跑的MFC)监听所有数据包,以及监听指定IP地址的数据包;(2)能够显示完整的IP数据包首部信息,例如:版本、首部长度、数据包长度、数据包类型(协议字段)、TTL、源IP地址、目的IP地址等;(3)能够显示完整的TCP报文段信息,例如:源端口、目的端口、序号、确认号、数据部分等;(4)能够自动检测SQL注入攻击等Web攻击行为;(5)能够将监听到的数据包信息保存到文件中,以及从文件中读取并显示数据包信息;(6)具有图形化操作界面。
购物车二级列表适配器
package wld.bawei.com.myjindong.Adapter; import android.content.Context; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.uti
锂电池充电器电路设计 里面有电路
锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。
Statistics and Machine Learning Toolbox
Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具
仿京东购物车适配器(二级列表)
//布局页面 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height...
廖雪峰Python教程[完整版]
廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白
android 用二级列表实现仿京东购物车
2.首先先自定义一个二级列表package com.example.jingdong.erji; import android.content.Context; import android.util.AttributeSet; import android.widget.ExpandableListView; /** * Created by huoxuebin on 2018/4/24....
大中型超市收银系统(可直接运行)
光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开
Android_二级列表购物车逻辑
二级列表适配器: package activity.example.com.jindongdemo.Adapter; import android.content.Context; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.Bas
二级列表的购物车-适配器
package com.example.recycler.adapter; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseExpandableListAdapter; import android.widget.C
仿京东购物车Deom
写代码前要先加上权限和依赖: android:name="android.permission.READ_EXTERNAL_STORAGE" /> android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> android:name="android.permission.INTERNET" /> 依赖: compile
RecyclerView实现二级列表
那今天就教大家使用RecyclerView来实现二级列表的购物车 废话不多说 直接上代码 权限 android:name="android.permission.INTERNET"> android:name="android.permission.READ_EXTERNAL_STORAGE" /> android:name="android.permission.WRIT
android购物车分类,Android实现二级列表购物车功能
本文实例为大家分享了Android实现二级列表购物车功能的具体代码,供大家参考,具体内容如下MainActivity:package com.baway.twoshopcar;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android...
安卓购物车二级列表简单展示(仿京东,淘宝效果)
首先导入依赖 implementation 'com.android.support:recyclerview-v7:28.0.0' implementation 'com.squareup.okhttp3:okhttp:3.1.2' implementation 'com.facebook.fresco:fresco:0.12.0' implementation 'com.squareup.re...
仿京东、淘宝实现购物车(二级列表的形式)
本章仿京东、淘宝实现的形式是通过二级列表实现的,网络请求工具类是通过okHttp实现的 本章使用到的依赖 //相关依赖 //okhttp implementation 'com.squareup.okhttp3:okhttp:3.11.0' //Gson implementation 'com.google.code.gson:gson:2.8.1' ...
Android购物车的总结
购物车布局<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match
购物车的具体实现步骤
//数据库创建 ```java package soexample.umeng.com.day_04_greendao.app; import android.app.Application; import soexample.umeng.com.day_04_greendao.dao.DaoMaster; import soexample.umeng.com.day_04_greendao...
android 购物车二级列表实现
首先看个效果图: 在我们做这个是时候,首先必须一定要导入权限: uses-permission android:name="android.permission.INTERNET" /> uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> uses-permission androi
325



被折叠的 条评论
为什么被折叠?



