本地购物车

来源:互联网 发布:windows截屏 编辑:程序博客网 时间:2024/06/14 06:11
/*
主Activity
*/
package com.example.gouwuche;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.gouwuche.adapter.MyRecycle;import com.example.gouwuche.bean.Shuju;import java.util.ArrayList;public class MainActivity extends AppCompatActivity {    private RecyclerView rlv;    private ArrayList<Shuju> list;    private TextView tv_zongjia;    private CheckBox cb_zong;    private Button bt_num;    private int money;    private int 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 <20 ; i++) {            list.add(new Shuju(false,30+i));        }        final MyRecycle mr=new MyRecycle(list,MainActivity.this);        rlv.setLayoutManager(new LinearLayoutManager(MainActivity.this));        rlv.setAdapter(mr);        //集合中的CheckBox多选框的回调接口        mr.setGeshu(new MyRecycle.Geshu() {            @Override            public void gs() {                boolean flag=true;                for (Shuju shuju : list) {                    if(shuju.isSlect()==false)                    {                        flag=false;                    }                }                cb_zong.setChecked(flag);            }        });        //总选框的处理以及总价钱的处理        boolean flag=true;        for (Shuju shuju : list) {            if(shuju.isSlect()==false)            {                flag=false;            }        }        cb_zong.setChecked(flag);        cb_zong.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                money=0;                num=0;                for (Shuju shuju : list) {                    if(cb_zong.isChecked())                    {                        shuju.setSlect(true);                        money=money+shuju.getPrice();                        num=list.size();                    }                    else                    {                        shuju.setSlect(false);                    }                }                mr.notifyDataSetChanged();                tv_zongjia.setText("总价:¥"+money);                bt_num.setText("结算("+num+")");            }        });        //点击集合中选框计算总价(回调接口)        mr.setJiaqian(new MyRecycle.JiaQian() {            @Override            public void jq() {                money=0;                num=0;                for (Shuju shuju : list) {                    if(shuju.isSlect()==true)                    {                        money=money+shuju.getPrice();                        num++;                    }                }                tv_zongjia.setText("总价:¥"+money);                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);    }}
/*******************************设配器***********************************/
package com.example.gouwuche.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.gouwuche.R;import com.example.gouwuche.bean.Shuju;import java.util.ArrayList;/** * Created by 祝文 on 2017/10/24. */public class MyRecycle extends RecyclerView.Adapter<MyRecycle.MyViewHolder> {   private ArrayList<Shuju> list;    private Context context;    public MyRecycle(ArrayList<Shuju> list, Context context ) {        this.list = list;        this.context = context;    }    @Override    public MyRecycle.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        View view = LayoutInflater.from(context).inflate(R.layout.item, null);        return new MyViewHolder(view);    }    @Override    public void onBindViewHolder(final MyRecycle.MyViewHolder holder, final int position) {        holder.tv.setText(list.get(position).getPrice()+"");        //集合中的多选款初始值        holder.cb.setOnCheckedChangeListener(null);        if(list.get(position).isSlect()==true)        {            holder.cb.setChecked(true);            geshu.gs();        }        else        {            holder.cb.setChecked(false);        }        //集合中的多选框        holder.cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {            @Override            public void onCheckedChanged(CompoundButton compoundButton, boolean b) {                if(holder.cb.isChecked())                {                    list.get(position).setSlect(true);                }                else                {                    list.get(position).setSlect(false);                }                geshu.gs();                list.get(position).setSlect(b);                jiaqian.jq();            }        });    }    @Override    public int getItemCount() {        return list.size();    }    public class MyViewHolder extends RecyclerView.ViewHolder {        private CheckBox cb;        private TextView tv;        public MyViewHolder(View itemView) {            super(itemView);            cb=itemView.findViewById(R.id.cb);            tv=itemView.findViewById(R.id.tv);        }    }    //集合中的多选框的接口    private Geshu geshu;    public void setGeshu(Geshu geshu) {        this.geshu = geshu;    }    public interface Geshu    {        void gs();    }    //计算价钱的接口    private JiaQian jiaqian;    public void setJiaqian(JiaQian jiaqian) {        this.jiaqian = jiaqian;    }    public interface JiaQian    {        void jq();    }}
 
原创粉丝点击