本文实例为大家分享了Android实现购物车的具体代码,供大家参考,具体内容如下

f7905f96fd55ed4934794583f1ecfa6f.png

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

// 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);

}

}

}

}

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐