购物车界面(Bootstrap)

这篇博客探讨了购物车界面的实现,重点在于如何使用cookie或session保存用户选择的商品,以及购物车的功能,包括添加、删除商品,修改数量和计算总价。博主详细介绍了购物流程,并提供了相关代码块,如expandable适配器和自定义加减控件。
摘要由CSDN通过智能技术生成

分析:

          1、网络购物车是一个虚拟的购物车,但是要实现像真实购物一样的大概流程,

添加商品,丢掉商品,结算价钱等等

1、 因为只有用户确定购买的商品才是有效的,并且选择不同的商品要浏览不同的页面,所以需要长久保存数据,但是还不能把所有的选过的商品都添加到数据库中,这样如果客户不要该商品时还需要在数据库中删除增加了服务器的压力,所以要筛选到只有客户最终确定的商品才添加到数据库进行保存,这时就需要一个临时的全局变量来保存数据,cookie 或者是 session 他们的优缺点以下介绍:

2、

3、 功能:

a) 商品展示,相关资料(基本描述,价格,名称,供应商情况,图片等)

b) 购物车功能

                   i.             用户可以再购物王章不同页面之间任意跳转,选购自己喜欢的商品---点击购买----订单信息----统一到付账台结账

功能包括:

1) 添加商品—-订购

2) 删除商品

3) 修改商品的购买数量(小计,总价)

4) 清空购物车

ii:订单

   详细信息表单

   支付方式----支付宝接口

购物流程:商品浏览—-加入购物车—–购物结算——生成订单——提交订单

代码块

main主页
public class ShoppingCar extends Fragment implements IGwCheView, View.OnClickListener {
   
    private List<GoodsBean.DataBean> list;
    private MyAdapter_car adapter;
    private View view;
    private ExpandableListView mMyexpandle;
    /**
     * 全选/反选
     */
    private CheckBox mCbQxMain;
    /**
     * 合计:0
     */
    private TextView mTvSum;
    /**
     * 去结算(0)
     */
    private Button mJisuan;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.shoppcar, container, false);
        initView(view);
        return view;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        int uid = 12007;

        PresenterImp presenterImp = new PresenterImp();
        presenterImp.showShoppingCarToView(new ModleImp(), getActivity(), this,uid);

    }

    @Override
    public void onResume() {
        super.onResume();
        int uid = 12007;

        PresenterImp presenterImp = new PresenterImp();
        presenterImp.showShoppingCarToView(new ModleImp(), getActivity(), this,uid);
    }



    @Override
    public void showGowWuList(List<GoodsBean.DataBean> data) {
        Log.d("GwCheFragment----------", "data:" + data);

        list = data;

        adapter = new MyAdapter_car(data, getActivity(), this);
        mMyexpandle.setAdapter(adapter);
//        打开二级列表
        int count = mMyexpandle.getCount();
        for (int i = 0; i < count; i++) {
            mMyexpandle.expandGroup(i);
        }
//        分割线
        mMyexpandle.setDivider(getResources().getDrawable(R.drawable.shap_param));
        mMyexpandle.setChildDivider(getResources().getDrawable(R.drawable.shap_child));
    }

//    显示总价
    @Override
    public void showCount(String count) {
        mTvSum.setText("总价:"+count);
    }

    private void initView(View view) {
        mMyexpandle = (ExpandableListView) view.findViewById(R.id.myexpandle);
        mCbQxMain = (CheckBox) view.findViewById(R.id.cb_qx_main);
        mTvSum = (TextView) view.findViewById(R.id.tv_sum);
        mJisuan = (Button) view.findViewById(R.id.jisuan);
        mJisuan.setOnClickListener(this);
        mCbQxMain.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            default:
                break;
//                全选   获取bean中的多选框状态值,赋予状态
            case R.id.cb_qx_main:
                boolean checked = mCbQxMain.isChecked();
                //只需要改变集合里面的数据,就可以了,然后刷新
                for (int i = 0; i < list.size(); i++) {
                    GoodsBean.DataBean dataBean = list.get(i);
                    dataBean.setParentIsSelected(checked);
                    //获得子集合,遍历
                    List<GoodsBean.ChildBean> list1 = dataBean.getList();
                    for (int j = 0; j < list1.size(); j++) {
                        list1.get(j).setChildIsSelect(checked);
                    }

                }
                //刷新即可
                adapter.notifyDataSetChanged();

                break;
            case R.id.jisuan:

                Toast.makeText(getActivity(), "去结算------", Toast.LENGTH_SHORT).show();

                break;
        }
    }
}

布局界面-----------------------------------------

<LinearLayout
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <ExpandableListView
        android:id="@+id/myexpandle"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:groupIndicator="@null"
        android:layout_weight="1">

    </ExpandableListView>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值