本地购物车
来源:互联网 发布: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(); }}
阅读全文
0 0
- 本地购物车
- 本地购物车(全)
- 本地购物车实现
- 简单实现购物车和本地购物车
- html5本地存储实现购物车
- 图书购买系统,本地添加购物车(不需要登录一样可以添加购物车,结算时需要登录)
- 购物车
- 购物车
- 购物车
- 购物车
- 购物车
- 购物车
- 购物车
- 购物车
- 购物车
- 购物车
- 购物车
- 购物车
- JavaScript高级程序设计–鼠标事件
- Mybatis学习总结
- 一份通用makefile,自动遍历子目录源文件,自动生成依赖
- C#操作Excel
- Java远程调用系列(一)——概览篇
- 本地购物车
- 笨方法学习Python-习题28: 布尔表达式练习
- 绿标大V无限生成
- linux多线程创建失败,errno=1:Operation not permitted
- Mysql查询条件加引号与不加引号的区别
- jquery $.proxy使用
- 生成不重复的随机数
- Spring Boot工程结构推荐
- Thymeleaf 模板