时间:2020-12-30 14:19:08 | 栏目: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); } } } }