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以及收藏日期,名为 ...
随机推荐
- Nginx降权启动
给Nginx服务降权,用lol用户跑Nginx,给开发及运维设置普通账号,只要和lol同组即可管理Nginx,该方案解决了Nginx管理问题,防止root分配权限过大. 开发人员使用普 ...
- 沈阳网络赛J-Ka Chang【分块】【树状数组】【dfs序】
Given a rooted tree ( the root is node 11 ) of NN nodes. Initially, each node has zero point. Then, ...
- 数据字典Data Dict
数据字典 所有的数据表都属于数据库对象,每当创建一张数据表的时候,会自动在指定的数据字典表执行一个增加语句(这个增加语言我们是不知道的),数据字典的数据操作只能通过命令完成,不能直接使用SQL完成. ...
- PL/SQL集合(一):记录类型(TYPE 类型名称 IS RECORD)
记录类型 利用记录类型可以实现复合数据类型的定义: 记录类型允许嵌套: 可以直接利用记录类型更新数据. 传统操作的问题 对于Oracle数据类型,主要使用的是VARCHAR2.NUMBER.DATE等 ...
- VM+CentOS+hadoop2.7搭建hadoop完全分布式集群
写在前边的话: 最近找了一个云计算开发的工作,本以为来了会直接做一些敲代码,处理数据的活,没想到师父给了我一个课题“基于质量数据的大数据分析”,那么问题来了首先要做的就是搭建这样一个平台,毫无疑问,底 ...
- Educational Codeforces Round 28
A. Curriculum Vitae 题目链接:http://codeforces.com/contest/846/problem/A 题目意思:给你一个只包含0-1的数组,现在要求去可以去掉一些元 ...
- Oracle性能优化之Oracle里的统计信息
一.什么是统计信息 oracle数据库里的统计信息是如下的一组数据:他们存储在数据字典里,且从多个维度描述了oracle数据库数据对象的详细信息. oracle数据库里的统计信息主要分为以下6种情况: ...
- Mongodb3.X版本的 的用户认证
一直使用公司的mongodb环境,本地的mongodb没有开启认证,为了环境更一致,决定加上本地mongodb的认证,不过在这个过程中发生了点波折. 我使用的是window版本的3.2,公司使用的是2 ...
- SQL基础--查询之二--连接查询
SQL基础--查询之二--连接查询
- matplotlib-曲线和折线案例
matplotlib-曲线和折线案例 import matplotlib.pyplot as plt import numpy as np x = np.linspace(-5, 5, 100) pr ...