码迷,mamicode.com
首页 > 其他好文 > 详细

硅谷商城6--购物车编辑实现

时间:2016-11-06 22:21:11      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:ted   rri   item   ova   not   complete   http   notify   显示   

技术分享  技术分享

    完成状态                                          编辑状态

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

在GovaffairPager类中

//设置点击删除
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);
			}
		}
	}
}

  

 

硅谷商城6--购物车编辑实现

标签:ted   rri   item   ova   not   complete   http   notify   显示   

原文地址:http://www.cnblogs.com/ganchuanpu/p/6036149.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!