没有合适的资源?快使用搜索试试~ 我知道了~
本文为大家讲解了Android实现购物车的整体页面逻辑,供大家参考,具体内容如下 MainActivity.java public class MainActivity extends AppCompatActivity implements View.OnClickListener{ String url = http://www.zhaoapi.cn/product/getCarts; private ExpandableListView el_cart; private CheckBox cb_cart_all_select; private TextView tv
资源详情
资源评论
资源推荐
Android实现购物车整体页面逻辑详解实现购物车整体页面逻辑详解
本文为大家讲解了Android实现购物车的整体页面逻辑,供大家参考,具体内容如下
MainActivity.java
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
String url = "http://www.zhaoapi.cn/product/getCarts";
private ExpandableListView el_cart;
private CheckBox cb_cart_all_select;
private TextView tv_cart_total_price;
private Button btn_cart_pay;
MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initData();
}
private void initData() {
HashMap<String, String> map = new HashMap<>();
map.put("uid","71");
OkhtttpUtils.getInstance().doPost(url, map, new OkhtttpUtils.OkCallback() {
@Override
public void onFailure(Exception e) {
}
@Override
public void onResponse(String json) {
CartInfo cartInfo = new Gson().fromJson(json, CartInfo.class);
if ("0".equals(cartInfo.getCode())){
List<CartInfo.DataBean> data = cartInfo.getData();
adapter = new MyAdapter(data);
el_cart.setAdapter(adapter);
//展开二级列表
for(int x=0; x<data.size(); x++){
el_cart.expandGroup(x);
}
adapter.setOnCartListChangeListener(new MyAdapter.onCartListChangeListener() {
@Override
public void onSellerCheckedChange(int i) {
//商家被点击
boolean currentSellerAllProductSelected = adapter.isCurrentSellerAllProductSelected(i);
adapter.changeCurrentSellerAllProductsStatus(i, !currentSellerAllProductSelected);
adapter.notifyDataSetChanged();
//B.刷新底部数据
refreshSelectedAndTotalPriceAndTotalNumber();
}
@Override
public void onProductCheckedChange(int i, int i1) {
//点击商品得checkbox
adapter.changeCurrentProductStatus(i,i1);
adapter.notifyDataSetChanged();
//B.刷新底部数据
refreshSelectedAndTotalPriceAndTotalNumber();
}
@Override
public void onProducNumberChange(int i, int i1, int number) {
//当加减被点击
adapter.changeCurrentProductNumber(i,i1,number);
adapter.notifyDataSetChanged();
//B.刷新底部数据
refreshSelectedAndTotalPriceAndTotalNumber();
}
});
}
}
});
}
//B.刷新checkbox状态和总价和总数量
private void refreshSelectedAndTotalPriceAndTotalNumber() {
//去判断是否所有得商品都被选中
boolean allProductsSelected = adapter.isAllProductsSelected();
//设置给全选checkBox
cb_cart_all_select.setChecked(allProductsSelected);
//计算总价
float totalPrice = adapter.calculateTotalPrice();
tv_cart_total_price.setText("总价 " + totalPrice);
//计算总数量
int totalNumber = adapter.calculateTotalNumber();
btn_cart_pay.setText("去结算(" + totalNumber + ")");
}
//初始化的操作
private void initView() {
el_cart = (ExpandableListView) findViewById(R.id.el_cart);
cb_cart_all_select = (CheckBox) findViewById(R.id.cb_cart_all_select);
tv_cart_total_price = (TextView) findViewById(R.id.tv_cart_total_price);
btn_cart_pay = (Button) findViewById(R.id.btn_cart_pay);
cb_cart_all_select.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.cb_cart_all_select:
//底部全选按钮
//时候所有得商品都被选中
boolean allProductsSelected = adapter.isAllProductsSelected();
adapter.changeAllProductStatus(!allProductsSelected);
adapter.notifyDataSetChanged();
//刷新底部数据
refreshSelectedAndTotalPriceAndTotalNumber();
break;
}
}
}
MyAdapter.java
public class MyAdapter extends BaseExpandableListAdapter{
private List<CartInfo.DataBean> list;
public MyAdapter(List<CartInfo.DataBean> data) {
list=data;
}
@Override
public int getGroupCount() {
return list==null ? 0 : list.size();
}
@Override
public int getChildrenCount(int i) {
return list.get(i).getList()==null ? 0 :list.get(i).getList().size();
}
@Override
public View getGroupView(final int i, boolean b, View view, ViewGroup viewGroup) {
//先拿到Bean里组的数据,看hiJson
CartInfo.DataBean dataBean = list.get(i);
ParentViewHolder parentViewHolder;
if (view == null) {
view = View.inflate(viewGroup.getContext(), R.layout.item_cart_parent, null);
parentViewHolder = new ParentViewHolder(view);
view.setTag(parentViewHolder);
} else {
parentViewHolder = (ParentViewHolder) view.getTag();
}
parentViewHolder.seller_name_tv.setText(dataBean.getSellerName());
boolean currentSellerAllProductSelected = isCurrentSellerAllProductSelected(i);
parentViewHolder.seller_cb.setChecked(currentSellerAllProductSelected);
//D.设置点击CheckBox
parentViewHolder.seller_cb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mOnCartListChangeListener !=null){
mOnCartListChangeListener.onSellerCheckedChange(i);
}
}
});
return view;
}
@Override
public View getChildView(final int i, final int i1, boolean b, View view, ViewGroup viewGroup) {
CartInfo.DataBean dataBean = list.get(i);
List<CartInfo.DataBean.ListBean> list1 = dataBean.getList();
CartInfo.DataBean.ListBean listBean = list1.get(i1);
ChildViewHolder childViewHolder;
if (view == null) {
view = View.inflate(viewGroup.getContext(), R.layout.item_cart_child, null);
childViewHolder = new ChildViewHolder(view);
view.setTag(childViewHolder);
} else {
childViewHolder=(ChildViewHolder)view.getTag();
}
//设置商品名字
childViewHolder.product_title_name_tv.setText(listBean.getTitle());
//设置商品单价
childViewHolder.product_price_tv.setText(listBean.getPrice()+"");
//设置复选框是否选中
childViewHolder.child_cb.setChecked(listBean.getSelected() == 1);
//设置组合式自定义控件内部的数量
childViewHolder.add_remove_view.setNumber(listBean.getNum());
//D.设置商品CheckBox的点击事件,通过接口回调,暴露给外面
childViewHolder.child_cb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mOnCartListChangeListener != null){
mOnCartListChangeListener.onProductCheckedChange(i,i1);
}
剩余11页未读,继续阅读
weixin_38732277
- 粉丝: 7
- 资源: 880
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0