Android-----购物车(包含侧滑删除,商品筛选,商品增加和减少,价格计算,店铺分类等)
电商项目中常常有购物车这个功能,做个很多项目了,都有不同的界面,选了一个来讲一下。
主要包含了 店铺分类,侧滑删除,商品筛选,增加和减少,价格计算等功能。
看看效果图:


重要代码:
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();
}
});
}
这是我项目中用到的购物车,基本的功能都有了的。
有需要的小伙们,可以参考一下。
代码下载Github:https://github.com/DickyQie/android-shoppingcart
Android-----购物车(包含侧滑删除,商品筛选,商品增加和减少,价格计算,店铺分类等)的更多相关文章
- 利用 jQuery 操作页面元素的方法,实现电商网站购物车页面商品数量的增加和减少操作,要求单项价格和总价随着数量的改变而改变
查看本章节 查看作业目录 需求说明: 利用 jQuery 操作页面元素的方法,实现电商网站购物车页面商品数量的增加和减少操作,要求单项价格和总价随着数量的改变而改变 当用户单击"+" ...
- Android实现RecyclerView侧滑删除和长按拖拽-ItemTouchHelper
RecyclerView这个被誉为ListView和GirdView的替代品,它的用法在之前的一篇博文中就已经讲过了,今天我们就来实现RecyclerView的侧滑删除和长按拖拽功能,实现这两个功能我 ...
- android下载管理、理财、浏览器、商品筛选、录音源码等
Android精选源码 android仿美拍直播的点赞动画 android视频播放器完美切换全屏.小窗口源码 android类似随手记理财类源码 android简单浏览器源码 andr ...
- Redis命令拾遗四(集合类型)—包含简单搜索筛选商品设计实例。
本文版权,归博客园和作者吴双共同所有.转载和爬虫请注明博客园蜗牛Redis系列文章地址 http://www.cnblogs.com/tdws/tag/NoSql/ Redis数据类型之集合(Set) ...
- JS前端数据多条件筛选(商品搜索)
有时候也会需要在前端进行数据筛选,增强交互体验.当数据可用的筛选条件较多时,把逻辑写死会给后期维护带来很大麻烦.下面是我自己写的一个简单的筛选器,筛选条件可以根据数据包含的字段动态设置. 仿照京东的筛 ...
- Android 自定义ListView Item侧滑删除
本程序是基于网上开源项目修改而来,具体来源忘了,懒得搜了,如果有不合适的地方,请原作者联系我,我会及时回复和处理的! 该例子程序中主要包含两个ListView,一个是实现侧滑删除,一个是侧滑出菜单,代 ...
- 【PHP开源产品】Ecshop的商品筛选功能实现分析之一
一.首先,说明一下为什么要对category.php文件进行分析. 原因如下: ①个人对商城类商品筛选功能的实现比较好奇: ②对商城中关于商品的数据表设计比较感兴趣.(该功能涉及到与数据库的交互,而且 ...
- xamarin.android pullToRefresharp.Android下拉刷新样式、侧滑删除功能
如果你正则使用xamarin.From开发项目,那么listview一定是你比不可少的控件.但是由于xamarin的listview在安卓上的功能有限,所以经常需要使用Renderers来改写平台实现 ...
- 现有某电商网站用户对商品的收藏数据,记录了用户收藏的商品id以及收藏日期,名为buyer_favorite1。 buyer_favorite1包含:买家id,商品id,收藏日期这三个字段,数据以“\t”分割
实验内容(mapReduce安装请按照林子雨教程http://dblab.xmu.edu.cn/blog/631-2/) 现有某电商网站用户对商品的收藏数据,记录了用户收藏的商品id以及收藏日期,名为 ...
随机推荐
- linux中增加swap分区文件的步骤方法
一.swap交换分区 Swap分区在系统的物理内存不够用的时候,把硬盘空间中的一部分空间释放出来,以供当前运行的程序使用.那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临 ...
- 关于java web的笔记2018-01-12
需求:1.写一个商品类,有商品编号.商品名称.商品分类.商品单价属性.2.写一个商品条目信息类,有商品和数量两个属性,有商品总价格方法.3.写一个购物车类,有添加商品方法.查看订单信息,删除商品,修改 ...
- "errmsg" : "distinct too big, 16mb cap",
repl_test:PRIMARY> show dbs admin 0.000GB direct_vote_resource 16.487GB local 14.860GB personas 3 ...
- 解决 Ubuntu 下 Sublime Text 无法输入中文的问题
解决 Ubuntu 下 Sublime Text 无法输入中文的问题 1. 安装依赖库 sudo apt-get install build-essential sudo apt-get instal ...
- appfog 添加数据库支持
1.PhpMyAdmin与app 在同一应用 1.cd进入应用所在的文件夹,输入 git clone git://github.com/appfog/af-php-myadmin.git 2.进入本地 ...
- 不登录到MySQL执行SQL语句
mysql -e 不登录到MySQL执行SQL语句 mysql -u root -p -e "SHOW DATABASES"
- Spark之Task原理分析
在Spark中,一个应用程序要想被执行,肯定要经过以下的步骤: 从这个路线得知,最终一个job是依赖于分布在集群不同节点中的task,通过并行或者并发的运行来完成真正的工作.由此可见 ...
- HDU2426:Interesting Housing Problem(还没过,貌似入门题)
#include <iostream> #include <queue> #include <stdio.h> #include <string.h> ...
- mydumper原理介绍
mydumper的安装:http://www.cnblogs.com/lizhi221/p/7010174.html mydumper介绍 MySQL自身的mysqldump工具支持单线程 ...
- (21)纹理缓存(Texture Cache)
简介 纹理缓存是将纹理缓存起来方便之后的绘制工作.每一个缓存的图像的大小,颜色和区域范围都是可以被修改的.这些信息都是存储在内存中的,不用在每一次绘制的时候都发送给GPU. CCTextureCach ...