本地购物车(全)

package com.example.yuekaofuxi;

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

import com.example.yuekaofuxi.adapter.MyRecycleView1;
import com.example.yuekaofuxi.bean.Shangpin;
import com.example.yuekaofuxi.bean.Shop;

import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    private RecyclerView rlv;
    private ArrayList<Shop> list;
    private List<Shangpin> splist;
    private CheckBox cb_zong;
    private MyRecycleView1 m1;
    private double money;
    private TextView tv_zongjia;
    private int num;
    private Button bt_num;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        initView();
        initData();
    }

    private void initData() {
        list = new ArrayList<>();
        for (int i = 0; i <10 ; i++) {
            splist = new ArrayList<>();
            for (int j = 0; j <3 ; j++) {
                splist.add(new Shangpin(false,"商品"+(j+1),10.0+(j+1)));
            }
            list.add(new Shop(false,"商家"+(i+1), splist));
        }

        setData();
    }

    private void setData() {
        m1 = new MyRecycleView1(list,MainActivity.this);
        rlv.setLayoutManager(new LinearLayoutManager(MainActivity.this));
        rlv.setAdapter(m1);

        m1.setZong(new MyRecycleView1.Zong() {
            @Override
            public void shangjia() {
                boolean flag=true;
                for (Shop shop : list) {
                    for (Shangpin shangpin : shop.getSplist()) {
                        if(shangpin.isSpselect()==false)
                        {
                            flag=false;
                        }
                    }
                }
                cb_zong.setChecked(flag);
            }

            @Override
            public void shangpin() {
                boolean flag=true;
                for (Shop shop : list) {
                    for (Shangpin shangpin : shop.getSplist()) {
                        if(shangpin.isSpselect()==false)
                        {
                            flag=false;
                        }
                    }
                }
                cb_zong.setChecked(flag);
            }
        });

        m1.setSjjiage(new MyRecycleView1.Sjjiage() {
            @Override
            public void sjjg() {
                money=0;
                for (Shop shop : list) {
                    for (Shangpin shangpin : shop.getSplist()) {
                        if(shangpin.isSpselect()==true)
                        {
                            money=money+shangpin.getJiage();
                        }
                    }
                }
                DecimalFormat decimalFormat=new DecimalFormat("######0.00");
                tv_zongjia.setText("¥"+decimalFormat.format(money));

            }
        });

        m1.setSjshuliang(new MyRecycleView1.Sjshuliang() {
            @Override
            public void sjsl() {
                num=0;
                for (Shop shop : list) {
                    for (Shangpin shangpin : shop.getSplist()) {
                        if(shangpin.isSpselect()==true)
                        {
                            num++;
                        }
                    }
                }
                bt_num.setText("结钱("+num+")");

            }
        });
    }
    private void initView() {
        rlv = (RecyclerView) findViewById(R.id.rlv);
        cb_zong = (CheckBox) findViewById(R.id.cb_zong);
        tv_zongjia = (TextView) findViewById(R.id.tv_zongjia);
        bt_num = (Button) findViewById(R.id.bt_num);

        cb_zong.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                money=0;
                num=0;
                for (Shop shop : list) {
                    for (Shangpin shangpin : shop.getSplist()) {
                        if(cb_zong.isChecked())
                        {
                            shangpin.setSpselect(true);
                            money=money+shangpin.getJiage();
                            num=(shop.getSplist().size())*10;
                        }
                        else
                        {
                            shangpin.setSpselect(false);
                        }
                    }
                }
                m1.notifyDataSetChanged();
                DecimalFormat decimalFormat=new DecimalFormat("######0.00");
                tv_zongjia.setText("¥"+decimalFormat.format(money));
                bt_num.setText("结钱("+num+")");
            }
        });
    }
}
 
 
 
 
/*******************大适配器*****************/
 
package com.example.yuekaofuxi.adapter;

import android.content.Context;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.TextView;

import com.example.yuekaofuxi.R;
import com.example.yuekaofuxi.bean.Shangpin;
import com.example.yuekaofuxi.bean.Shop;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by 祝文 on 2017/10/24.
 */

public class MyRecycleView1 extends RecyclerView.Adapter<MyRecycleView1.MyViewHolder> {
    private ArrayList<Shop> list;
    private Context context;

    public MyRecycleView1(ArrayList<Shop> list, Context context) {
        this.list = list;
        this.context = context;
    }

    @Override
    public MyRecycleView1.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        View view = LayoutInflater.from(context).inflate(R.layout.item1, null);

        return new MyViewHolder(view);
    }

    @Override
    public void onBindViewHolder(final MyRecycleView1.MyViewHolder holder, final int position) {

        holder.tv_shangjia.setText(list.get(position).getShangjia());

        final List<Shangpin> splist = list.get(position).getSplist();
        System.out.println("-----"+splist.size());
        final MyRecycleView2 m2=new MyRecycleView2(splist,context);
        holder.rlv_zi.setLayoutManager(new LinearLayoutManager(context));
        holder.rlv_zi.setAdapter(m2);

        boolean flag=true;
        for (Shangpin shangpin : splist) {
            if(shangpin.isSpselect()==false)
            {
                flag=false;
            }
        }
        holder.cb.setChecked(flag);

        m2.setGeshu(new MyRecycleView2.Geshu() {
            @Override
            public void gs() {
                boolean flag=true;
                for (Shangpin shangpin : splist) {
                    if(shangpin.isSpselect()==false)
                    {
                        flag=false;
                    }
                }
                holder.cb.setChecked(flag);
                zong.shangpin();
            }
        });

        holder.cb.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                for (Shangpin shangpin : splist) {
                    if(holder.cb.isChecked())
                    {
                        shangpin.setSpselect(true);
                    }
                    else
                    {
                        shangpin.setSpselect(false);
                    }
                }
                m2.notifyDataSetChanged();
                zong.shangjia();
                //商家价格接口
                sjjiage.sjjg();
                //商家数量接口
                sjshuliang.sjsl();
            }
        });

        //计算价钱
        m2.setSpjiage(new MyRecycleView2.Spjiage() {
            @Override
            public void spjg() {
                sjjiage.sjjg();
            }
        });
        //计算数量
        m2.setShuliang(new MyRecycleView2.Shuliang() {
            @Override
            public void spsl() {
                sjshuliang.sjsl();
            }
        });
    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    public class MyViewHolder extends RecyclerView.ViewHolder {
        private CheckBox cb;
        private TextView tv_shangjia;
        private RecyclerView rlv_zi;
        public MyViewHolder(View itemView) {
            super(itemView);
            cb=itemView.findViewById(R.id.cb);
            tv_shangjia=itemView.findViewById(R.id.tv_shangjia);
            rlv_zi=itemView.findViewById(R.id.rlv_zi);
        }
    }

    //总的复选框
    private Zong zong;
    public void setZong(Zong zong) {
        this.zong = zong;
    }
    public interface Zong
    {
        void shangjia();
        void shangpin();
    }


    //商家复选框
    private Sjjiage sjjiage;
    public void setSjjiage(Sjjiage sjjiage) {
        this.sjjiage = sjjiage;
    }
    public interface Sjjiage
    {
        void sjjg();
    }

    //商家复选框数量
    private Sjshuliang sjshuliang;
    public void setSjshuliang(Sjshuliang sjshuliang) {
        this.sjshuliang = sjshuliang;
    }
    public interface Sjshuliang
    {
        void sjsl();
    }
}
 
 
/*****************小适配器****************/
 
package com.example.yuekaofuxi.adapter;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;

import com.example.yuekaofuxi.R;
import com.example.yuekaofuxi.bean.Shangpin;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by 祝文 on 2017/10/24.
 */

public class MyRecycleView2 extends RecyclerView.Adapter<MyRecycleView2.MyViewHolder> {
    private List<Shangpin> splist;
    private Context context;

    public MyRecycleView2(List<Shangpin> splist, Context context) {
        this.splist = splist;
        this.context = context;
    }

    @Override
    public MyRecycleView2.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View inflate = LayoutInflater.from(context).inflate(R.layout.item2, null);
        MyViewHolder myViewHolder=new MyViewHolder(inflate);
        return myViewHolder;
    }

    @Override
    public void onBindViewHolder(final MyRecycleView2.MyViewHolder holder, final int position) {
        holder.cb_zi.setOnCheckedChangeListener(null);
        holder.tv_shangpin.setText(splist.get(position).getSp());
        holder.tv_jiage.setText(splist.get(position).getJiage()+"");

        if(splist.get(position).isSpselect()==true)
        {
            holder.cb_zi.setChecked(true);
            geshu.gs();
        }
        else
        {
            holder.cb_zi.setChecked(false);
        }

        holder.cb_zi.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
                if( holder.cb_zi.isChecked())
                {
                    splist.get(position).setSpselect(true);

                }
                else
                {
                    splist.get(position).setSpselect(false);
                }
                splist.get(position).setSpselect(b);
                geshu.gs();
                spjiage.spjg();
                shuliang.spsl();
            }
        });

    }

    @Override
    public int getItemCount() {
        return splist.size();
    }

    public class MyViewHolder extends RecyclerView.ViewHolder {
        private CheckBox cb_zi;
        private TextView tv_shangpin;
        private TextView tv_jiage;
        public MyViewHolder(View itemView) {
            super(itemView);
            cb_zi=itemView.findViewById(R.id.cb_zi);
            tv_shangpin=itemView.findViewById(R.id.tv_shangpin);
            tv_jiage=itemView.findViewById(R.id.tv_jiage);
        }
    }


    private Geshu geshu;
    public void setGeshu(Geshu geshu) {
        this.geshu = geshu;
    }
    public interface Geshu
    {
        void gs();
    }


    //构选复选框计算商品的价钱
    private Spjiage spjiage;
    public void setSpjiage(Spjiage spjiage) {
        this.spjiage = spjiage;
    }
    public interface Spjiage
    {
        void spjg();
    }

    //构选复选框计算数量
    private Shuliang shuliang;
    public void setShuliang(Shuliang shuliang) {
        this.shuliang = shuliang;
    }
    public interface Shuliang
    {
        void spsl();
    }

}
 

                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值