购物车全选
来源:互联网 发布:碣石鱼刺车行淘宝 编辑:程序博客网 时间:2024/06/08 18:55
适配器:
public class MyExpAdapter extends BaseExpandableListAdapter{ private Context context; private List<GoodsBean> glist; private List<List<GoodsBean>> clist; private CheckBox check_all; private TextView count; private int all = 0; public MyExpAdapter(Context context, List<GoodsBean> glist, List<List<GoodsBean>> clist, CheckBox check_all, TextView count) { this.context = context; this.glist = glist; this.clist = clist; this.check_all = check_all; this.count = count; } @Override public int getGroupCount() { return glist.size(); } @Override public int getChildrenCount(int i) { return clist.get(i).size(); } @Override public Object getGroup(int i) { return glist.get(i); } @Override public Object getChild(int i, int i1) { return clist.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 true; } @Override public View getGroupView(final int i, boolean b, View view, ViewGroup viewGroup) { view = LayoutInflater.from(context).inflate(R.layout.group, viewGroup, false); TextView tv = view.findViewById(R.id.group_tv); final CheckBox cb = view.findViewById(R.id.group_cb); cb.setChecked(glist.get(i).isCk()); tv.setText(glist.get(i).getName()); cb.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String str = count.getText().toString().trim(); int num = Integer.valueOf(str); int b =0; int c = 0; if (glist.get(i).isCk()){ num-=clist.get(i).size(); glist.get(i).setCk(false); check_all.setChecked(false); for (int j = 0; j < clist.get(i).size(); j++) { clist.get(i).get(j).setCk(false); } }else { glist.get(i).setCk(true); for (int k = 0; k < clist.get(i).size(); k++) { if (!clist.get(i).get(k).isCk()){ c++; } clist.get(i).get(k).setCk(true); } } for (int j = 0; j < glist.size(); j++) { if (glist.get(j).isCk()){ b++; } } if (b==glist.size()){ check_all.setChecked(true); } num+=c; count.setText(num+""); notifyDataSetChanged(); } }); return view; } @Override public View getChildView(final int i, final int i1, boolean b, View view, ViewGroup viewGroup) { view = LayoutInflater.from(context).inflate(R.layout.child, viewGroup, false); TextView tv = view.findViewById(R.id.child_tv); CheckBox cb = view.findViewById(R.id.child_cb); tv.setText(clist.get(i).get(i1).getName()); cb.setChecked(clist.get(i).get(i1).isCk()); cb.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String str = count.getText().toString().trim(); int num = Integer.valueOf(str); if (clist.get(i).get(i1).isCk()){ num--; clist.get(i).get(i1).setCk(false); glist.get(i).setCk(false); check_all.setChecked(false); }else { num++; clist.get(i).get(i1).setCk(true); int a = 0; int b = 0; for (int j = 0; j < clist.get(i).size(); j++) { if (clist.get(i).get(j).isCk()){ a++; } } if (a==clist.get(i).size()){ glist.get(i).setCk(true); } for (int j = 0; j < glist.size(); j++) { if (glist.get(j).isCk()){ b++; } if (b==glist.size()){ check_all.setChecked(true); } } } count.setText(num+""); notifyDataSetChanged(); } }); return view; } @Override public boolean isChildSelectable(int i, int i1) { return true; }}
------------------------------------------------------------------
public class MainActivity extends AppCompatActivity { private ExpandableListView expandableListView; private List<GoodsBean> glist; private List<List<GoodsBean>> clist; private CheckBox check_all; private TextView count; private MyExpAdapter myExpAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); check_all = (CheckBox) findViewById(R.id.check_all); count = (TextView) findViewById(R.id.count); expandableListView = (ExpandableListView) findViewById(R.id.expandableListView); initData(); myExpAdapter = new MyExpAdapter(this,glist,clist,check_all,count); expandableListView.setGroupIndicator(null); expandableListView.setAdapter(myExpAdapter); /*int groupCount = myExpAdapter.getGroupCount(); for (int i = 0; i < groupCount; i++) { expandableListView.expandGroup(i); }*/ expandableListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() { @Override public boolean onGroupClick(ExpandableListView expandableListView, View view, int i, long l) { Toast.makeText(MainActivity.this, "1111", Toast.LENGTH_SHORT).show(); return false; } }); check_all.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { boolean checked = check_all.isChecked(); int all = 0; if (checked){ for (int i = 0; i < clist.size(); i++) { glist.get(i).setCk(true); all+=clist.get(i).size(); for (int j = 0; j < clist.get(i).size(); j++) { clist.get(i).get(j).setCk(true); } } }else { for (int i = 0; i < clist.size(); i++) { glist.get(i).setCk(false); for (int j = 0; j < clist.get(i).size(); j++) { clist.get(i).get(j).setCk(false); all=0; } } } count.setText(""+all); myExpAdapter.notifyDataSetChanged(); } }); } private void initData() { glist = new ArrayList<>(); glist.add(new GoodsBean("商品A",false)); glist.add(new GoodsBean("商品B",false)); glist.add(new GoodsBean("商品C",false)); clist = new ArrayList<>(); List<GoodsBean> clist1 = new ArrayList<>(); clist1.add(new GoodsBean("商品1",false)); clist1.add(new GoodsBean("商品2",false)); clist1.add(new GoodsBean("商品3",false)); clist1.add(new GoodsBean("商品4",false)); clist1.add(new GoodsBean("商品5",false)); List<GoodsBean> clist2 = new ArrayList<>(); clist2.add(new GoodsBean("商品1",false)); clist2.add(new GoodsBean("商品2",false)); clist2.add(new GoodsBean("商品3",false)); clist2.add(new GoodsBean("商品4",false)); clist2.add(new GoodsBean("商品5",false)); List<GoodsBean> clist3 = new ArrayList<>(); clist3.add(new GoodsBean("商品1",false)); clist3.add(new GoodsBean("商品2",false)); clist3.add(new GoodsBean("商品3",false)); clist3.add(new GoodsBean("商品4",false)); clist3.add(new GoodsBean("商品5",false)); clist.add(clist1); clist.add(clist2); clist.add(clist3); }}
阅读全文
0 0
- 购物车 全选逻辑
- 购物车全选
- 购物车 全选 总价
- angularJS--购物车实现全选/取消全选
- 购物车全选反选
- HTML5-购物车全选--小计-
- 购物车的全选,全不选,局部全选,全选判定
- AngularJS--购物车全选/取消全选功能实现
- 类似淘宝购物车全选状态
- Android购物车全选功能实现·
- 百度音乐,购物车的全选功能
- 购物车数量的加减,以及全选
- 购物车 全选按钮 选中状态 判断
- 全选与反选_购物车
- ionic 购物车全选,单选
- 购物车必备全选反选
- CheckBox_全选_仿购物车
- AngularJS+购物车+全选+清空+删除
- Unexpected token in JSON at position 0
- bzoj1051 [HAOI2006]受欢迎的牛(tarjan求强连通分量)
- Android网络数据解析之Jsoup
- head dump分析
- 随便写写传传吧
- 购物车全选
- 提高程序员生产力的代码生成器
- java基础
- Sublime3新版激活码 2017/9/14亲测可用
- 关于linux上文件路径的问题
- js中字符串正则表达式、正则法则pattern、RegExp、flags、exec
- 抓取app视频文章记录
- hdu 4405(期望dp)
- vim常用命令