Android仿硅谷商城实现购物车实例代码
作者:ganchuanpu
这篇文章主要介绍了Android购物车编辑实现,小编觉得挺不错的,一起跟随小编过来看看吧
本文实例为大家分享了Android实现购物车的具体代码,供大家参考,具体内容如下
1_设置点击事件和定义状态
在GovaffairPager类中
public class GovaffairPager extends BasePager { ............ /** * 编辑状态 */ private static final int ACTION_EDIT = 0; /** * 完成状态 */ private static final int ACTION_COMPLETE = 1; @Override public void initData() { ...... //设置编辑的点击事件 btn_cart.setTag(ACTION_EDIT); btn_cart.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int action = (int) btn_cart.getTag(); if(action ==ACTION_EDIT){ //变成完成状态 showDelete(); }else if(action ==ACTION_COMPLETE){ //变成编辑状态 hideDelete(); } } }); } /** * 隐藏删除按钮 */ private void hideDelete() { //1.文本设置-编辑 btn_cart.setText("编辑"); //2.状态设置编辑 btn_cart.setTag(ACTION_EDIT); //3.数据设置非全选 adapter.checkAll_none(true); adapter.checkAll(); //4.隐藏按钮显示,显示结算按钮 btn_delete.setVisibility(View.GONE); btn_order.setVisibility(View.VISIBLE); //5.价格重新计算 adapter.showTotalPrice(); } /** * 显示删除按钮 */ private void showDelete() { //1.文本设置-完成 btn_cart.setText("完成"); //2.状态设置完成 btn_cart.setTag(ACTION_COMPLETE); //3.数据设置非全选 adapter.checkAll_none(false); adapter.checkAll(); //4.删除按钮显示,隐藏结算按钮 btn_delete.setVisibility(View.VISIBLE); btn_order.setVisibility(View.GONE); //5.价格重新计算 adapter.showTotalPrice(); } }
2_在适配器中删除选中的item
//设置点击删除 btn_delete.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //只是把选择的删除 adapter.deleteCart(); } });
在适配器中的代码
/** * 删除选中的数据 */ public void deleteData() { // if(datas != null && datas.size() >0){ // for(int i=0;i<datas.size();i++){ // ShoppingCart cart = datas.get(i); // if(cart.isCheck()){ // //1.删除本地缓存的 // cartProvider.deleteData(cart); // //2.删除当前内存的 // datas.remove(cart); // //3.刷新数据 // notifyItemRemoved(i); // i--; // } // } // } if(datas != null && datas.size() >0){ for(Iterator iterator = datas.iterator();iterator.hasNext();){ ShoppingCart cart = (ShoppingCart) iterator.next(); if(cart.isCheck()){ //这行代码放在前面 int position = datas.indexOf(cart); //1.删除本地缓存的 cartProvider.deleteData(cart); //2.删除当前内存的 //datas.remove(cart); iterator.remove(); //3.刷新数据 notifyItemRemoved(position); } } } }
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。