电商项目中常常有购物车这个功能,做个很多项目了,都有不同的界面,选了一个来讲一下。
主要包含了 店铺分类,侧滑删除,商品筛选,增加和减少,价格计算等功能。
看看效果图:
重要代码:
private void showExpandData(){ cartExpandAdapter=new CartExpandAdapter(this,cartExpandablelistview,cartInfo.getData()); cartExpandablelistview.setAdapter(cartExpandAdapter); int intgroupCount = cartExpandablelistview.getCount(); for (int i=0; i<intgroupCount; i++) { cartExpandablelistview.expandGroup(i); } /** * 全选 */ cartExpandAdapter.setOnItemClickListener(new OnViewItemClickListener() { @Override public void onItemClick(boolean isFlang, View view, int position) { cartInfo.getData().get(position).setIscheck(isFlang); int length=cartInfo.getData().get(position).getItems().size(); for (int i = 0; i < length; i++) { cartInfo.getData().get(position).getItems().get(i).setIscheck(isFlang); } cartExpandAdapter.notifyDataSetChanged(); showCommodityCalculation(); } }); /** * 单选 */ cartExpandAdapter.setOnClickListenterModel(new OnClickListenterModel() { @Override public void onItemClick(boolean isFlang, View view,int onePosition, int position) { cartInfo.getData().get(onePosition).getItems().get(position).setIscheck(isFlang); int length=cartInfo.getData().get(onePosition).getItems().size(); for (int i = 0; i < length ; i++) { if (! cartInfo.getData().get(onePosition).getItems().get(i).ischeck()){ if (!isFlang){ cartInfo.getData().get(onePosition).setIscheck(isFlang); } cartExpandAdapter.notifyDataSetChanged(); showCommodityCalculation(); return; }else { if (i== ( length-1)){ cartInfo.getData().get(onePosition).setIscheck(isFlang); cartExpandAdapter.notifyDataSetChanged(); } } } showCommodityCalculation(); } }); cartExpandAdapter.setOnClickDeleteListenter(new OnClickDeleteListenter() { @Override public void onItemClick(View view, int onePosition, int position) { Toast.makeText(MainActivity.this,"删除操作",Toast.LENGTH_LONG).show(); } }); /*** * 数量增加和减少 */ cartExpandAdapter.setOnClickAddCloseListenter(new OnClickAddCloseListenter() { @Override public void onItemClick(View view, int index, int onePosition, int position,int num) { if (index==1){ if (num>1) { cartInfo.getData().get(onePosition).getItems().get(position).setNum((num - 1)); cartExpandAdapter.notifyDataSetChanged(); } }else { cartInfo.getData().get(onePosition).getItems().get(position).setNum((num + 1)); cartExpandAdapter.notifyDataSetChanged(); } showCommodityCalculation(); } }); }
这是我项目中用到的购物车,基本的功能都有了的。
有需要的小伙们,可以参考一下。
代码传送门