主页面

本文详细介绍了一个基于Android平台的购物车功能实现过程,包括XML布局设计、RecycleView的使用、数据加载与展示、CheckBox的选择同步及总价计算等功能。通过具体的代码示例,展示了如何创建一个完整的购物车页面。

//CartActivity.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    tools:context=".CartActivity">

    <com.jcodecraeer.xrecyclerview.XRecyclerView
        android:id="@+id/cartGV"
        android:layout_above="@+id/cart_bottom_layout"
        android:layout_alignParentTop="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

    <RelativeLayout
        android:id="@+id/cart_bottom_layout"
        android:padding="5dp"
        android:background="@android:color/darker_gray"
        android:layout_alignParentBottom="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <CheckBox
            android:layout_centerVertical="true"
            android:id="@+id/allCheckbox"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
        <TextView
            android:id="@+id/totalpriceTv"
            android:textColor="#ffffff"
            android:layout_centerVertical="true"
            android:layout_toRightOf="@+id/allCheckbox"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="总价:"/>

        <Button
            android:id="@+id/buy"
            android:onClick="buy"
            android:layout_alignParentRight="true"
            android:text="去结算"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    </RelativeLayout>

</RelativeLayout>

 

//CartActivity

package com.bwie.yuekao;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.util.Log;
import android.view.View;
import android.widget.CheckBox;
import android.widget.TextView;

import com.bwie.yuekao.adapter.CartAdapter;
import com.bwie.yuekao.bean.CartBean;
import com.bwie.yuekao.common.Contonts;
import com.bwie.yuekao.presenter.Cartpresenter;
import com.bwie.yuekao.view.IcartView;
import com.jcodecraeer.xrecyclerview.XRecyclerView;

import java.util.HashMap;
import java.util.List;

public class CartActivity extends AppCompatActivity implements IcartView{

    private XRecyclerView xRecyclerView;
    private CheckBox allCheckbox;
    private TextView totalPriceTv;
    private int page=1;
    private Cartpresenter cartpresenter;
    private List<CartBean.DataBean> list;
    private CartAdapter cartAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_cart);
        initView();
        initData();
    }

    private void initData() {
        loadData();
    }

    private void loadData() {
        HashMap<String,String> params = new HashMap<>();
        params.put("uid","71");
        params.put("page",page+"");
        cartpresenter = new Cartpresenter(this);
        cartpresenter.getCarts(params, Contonts.GETCARTS);

    }

    //初始化控件
    private void initView() {
        xRecyclerView = findViewById(R.id.cartGV);
        allCheckbox = findViewById(R.id.allCheckbox);
        totalPriceTv = findViewById(R.id.totalpriceTv);
        xRecyclerView.setLayoutManager(new LinearLayoutManager(this));
        xRecyclerView.setLoadingMoreEnabled(true);
        xRecyclerView.setLoadingListener(new XRecyclerView.LoadingListener() {
            @Override
            public void onRefresh() {
                page=1;
                loadData();
            }

            @Override
            public void onLoadMore() {
                page++;
                loadData();
            }
        });
        allCheckbox.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (allCheckbox.isChecked()){
                    if (list !=null && list.size()>0){
                        for (int i =0;i<list.size();i++){
                            list.get(i).setSelected(true);
                            for (int i1=0;i1<list.get(i).getList().size();i1++){
                                list.get(i).getList().get(i1).setSelected(true);
                            }
                        }
                    }
                }else{
                    if (list!=null && list.size() >0){
                        for (int i=0;i<list.size();i++){
                            list.get(i).setSelected(false);
                            for (int i1=0;i1<list.get(i).getList().size();i1++){
                                list.get(i).getList().get(i1).setSelected(false);
                            }
                        }
                    }
                }
                cartAdapter.notifyDataSetChanged();

            }
        });
    }

    public void buy(View view) {
    }

    @Override
    public void success(CartBean cartBean) {
        if (cartBean!=null && cartBean.getData()!=null){
            list = cartBean.getData();
            Log.i("bbbbbb",list+"");
            cartAdapter = new CartAdapter(CartActivity.this, list);
            xRecyclerView.setLayoutManager(new LinearLayoutManager(CartActivity.this));
            xRecyclerView.setAdapter(cartAdapter);
            xRecyclerView.refreshComplete();
        }
    }

    @Override
    public void error(String msg) {

    }
}

 

 

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Blog Design</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link rel="stylesheet" type="text/css" href="style.css" /> </head> <body> <div id="header"> <span class="logo">blog about web design</span> <div href="sc.chinaz.com">best free templates</a></h1></div> <ul id="menu"> <li><a href="index.html"><img src="images/but1.gif" alt="" width="64" height="42" /></a></li> <li><a href="index2.html"><img src="images/but2.gif" alt="" width="108" height="42" /></a></li> <li><a href="index2.html"><img src="images/but3.gif" alt="" width="93" height="42" /></a></li> <li><a href="index2.html"><img src="images/but4.gif" alt="" width="101" height="42" /></a></li> <li><a href="index2.html"><img src="images/but5.gif" alt="" width="86" height="42" /></a></li> <li><a href="index2.html"><img src="images/but6.gif" alt="" width="102" height="42" /></a></li> </ul> <img src="images/spacer.gif" alt="setalpm" width="120" height="120" border="0" usemap="#Map" class="rss" /> <map name="Map"> <area shape="circle" coords="60,60,63" href="sc.chinaz.com"> </map> </div> <div id="content"> <div id="posts"> <div class="post"> <h2>Retro Photos</h2> <div><span class="date">Mar 18th</span><span class="categories">in: Photos, Retro</span></div> <div class="description"> <p><img src="images/pic1.jpg" alt="" width="239" height="232" /> Lorem ipsum dolor sit amet, consectetuer adipi scing elit.Mauris urna urna, varius et, interdum a, tincidunt quis, libero. Aenean sit amturpis. Maecenas hendrerit, massa ac laoreet iaculipede mnisl ullamcorpermassa, cosectetuer feipsum eget pede. Proin nunc. Donec nonummy, tellus er sodales enim, in tincidunmauris in odio. Massa ac laoreet iaculipede nisl ullamcorpermassa, ac consectetuer feipsum eget pede. Proin nunc. Donec massa. Nulla pulvinar, nisl ac convallis nonummy, tellus eros sodales enim, in tincidunt mauris in odio. massa ac laoreet iaculipede niorpermassa,consectetuer feipsum eget pede. Proin nunc. Donec massa. Nulla pulvinar, nisl ac convallis nonummy, tellus eros sodales enim, in tincidunt mauris in odio. Lorem ipsum dolor sit amet, consectetuer adipi scing elit.Mauris urna urna, varius et, interdum a, tincidunt quis, libero. Aenean sit amturpis. </p> </div> <p class="comments">Comments - <a href="sc.chinaz.com">17</a> <span>|</span> <a href="index2.html">Continue Reading</a></p> </div> <div class="post"> <h2>Original Wordpress Themes</h2> <div><span class="date">Mar 12th</span><span class="categories">in: Design, Themes</span></div> <div class="description"> <p>Lorem ipsum dolor sit amet, consectetuer adipi scing elit.Mauris urna urna, varius et, interdum a, tincidunt quis, libero. Aenean sit amturpis. Maecenas hendrerit, massa ac laoreet iaculipede mnisl ullamcorpermassa, cosectetuer feipsum eget pede. Proin nunc. Donec nonummy, tellus er sodales enim, in tincidunmauris in odio. Massa ac laoreet iaculipede nisl ullamcorpermassa, ac consectetuer feipsum eget pede. Proin nunc. Donec massa. Nulla pulvinar, nisl ac convallis nonummy, tellus eros sodales enim, in tincidunt mauris in odio. massa ac laoreet iaculipede niorpermassa,consectetuer feipsum eget pede. Proin nunc. Donec massa. Nulla pulvinar, nisl ac convallis nonummy, tellus eros sodales enim, in tincidunt mauris in odio. Lorem ipsum dolor sit amet, consectetuer adipi scing elit.Mauris urna urna, varius et, interdum a, tincidunt quis, libero. Aenean sit amturpis. </p> </div> <p class="comments">Comments - <a href="sc.chinaz.com">17</a> <span>|</span> <a href="index2.html">Continue Reading</a></p> </div> </div> <div id="sidebar"> <div id="search"> <input type="text" value="Search"> <a href="sc.chinaz.com"><img src="images/go.gif" alt="" width="26" height="26" /></a> </div> <div class="list"> <img src="images/title1.gif" alt="" width="186" height="36" /> <ul> <li><a href="sc.chinaz.com">animation</a></li> <li><a href="sc.chinaz.com">magazines</a></li> <li><a href="sc.chinaz.com">architecture</a></li> <li><a href="sc.chinaz.com">news</a></li> <li><a href="sc.chinaz.com">art</a></li> <li><a href="sc.chinaz.com">photography</a></li> <li><a href="sc.chinaz.com">blogs</a></li> <li><a href="sc.chinaz.com">product design</a></li> <li><a href="sc.chinaz.com">books</a></li> <li><a href="sc.chinaz.com">stuff</a></li> <li><a href="sc.chinaz.com">graphic design</a></li> <li><a href="sc.chinaz.com">web design</a></li> <li><a href="sc.chinaz.com">illustration</a></li> </ul> <img src="images/title2.gif" alt="" width="180" height="34" /> <ul> <li><a href="sc.chinaz.com">January</a></li> <li><a href="sc.chinaz.com">July</a></li> <li><a href="sc.chinaz.com">February</a></li> <li><a href="sc.chinaz.com">August</a></li> <li><a href="sc.chinaz.com">March</a></li> <li><a href="sc.chinaz.com">September</a></li> <li><a href="sc.chinaz.com">April</a></li> <li><a href="sc.chinaz.com">October</a></li> <li><a href="sc.chinaz.com">May</a></li> <li><a href="sc.chinaz.com">November</a></li> <li><a href="sc.chinaz.com">June</a></li> <li><a href="sc.chinaz.com">December</a></li> </ul> </div> </div> </div> <div id="footer"> <p>Copyright ©. All rights reserved. Design from <a href="sc.chinaz.com" target="_blank" title="Free Templates">站长素材</a></p> </div> <div </html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值