android简单一级购物车
16lz
2021-01-25
Activitymain。xml
<?xml version="1.0" encoding="utf-8"?>
shopcar_item.xml
<?xml version="1.0" encoding="utf-8"?>
ActivityMain.java
package com.example.myapplication.activity;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.ExpandableListView;import android.widget.TextView;import android.widget.Toast;import com.example.myapplication.R;import com.example.myapplication.adapter.MyAdapter;import com.example.myapplication.bean.Result;import com.example.myapplication.bean.UserEntity;import com.example.myapplication.bean.Users;import com.example.myapplication.core.DataCall;import com.example.myapplication.precenter.ListPrecemter;import java.util.ArrayList;import java.util.List;import butterknife.BindView;import butterknife.ButterKnife;import butterknife.OnClick;public class MainActivity extends AppCompatActivity { @BindView(R.id.shopcar_RecyclerView) RecyclerView mXRecyclerView; @BindView(R.id.cb_checkAll) CheckBox checkAll; @BindView(R.id.tv_total) TextView tv_total; @BindView(R.id.tv_goBuy) TextView tv_goBuy; MyAdapter myAdapter; List result; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); ListPrecemter listPrecemter=new ListPrecemter(new ListData()); listPrecemter.reqeust("鞋",1,10); } private class ListData implements DataCall>>{ @Override public void success(Result> data) { if (data.getStatus().equals("0000")){ result = data.getResult(); LinearLayoutManager manager=new LinearLayoutManager(MainActivity.this); mXRecyclerView.setLayoutManager(manager); myAdapter=new MyAdapter(MainActivity.this,result); mXRecyclerView.setAdapter(myAdapter); myAdapter.setOnShopItemClick(new MyAdapter.OnShopItemClick() { @Override public void checkBoxClick(View view, int i) { if (result.get(i).isFlag()) { result.get(i).setFlag(false); checkAll.setChecked(false); }else { result.get(i).setFlag(true); } getTotal(); myAdapter.notifyDataSetChanged(); } @Override public void subItemClick(View view, int position) { int count = result.get(position).getSaleNum(); if(count<=1){ Toast.makeText(MainActivity.this, "呀,不能再少啦!", Toast.LENGTH_SHORT).show(); }else { count--; result.get(position).setSaleNum(count); if(result.get(position).isFlag()){ getTotal(); } } myAdapter.notifyDataSetChanged(); } @Override public void addItemClick(View view, int position) { int count = result.get(position).getSaleNum(); count++; result.get(position).setSaleNum(count); if(result.get(position).isFlag()){ getTotal(); } myAdapter.notifyDataSetChanged(); } }); } } @Override public void fail(Result result) { } } private void getTotal() { double total =0; int num =0; for (int i = 0; i < myAdapter.getItemCount(); i++) { Users users = result.get(i); if (users.isFlag()){ total += users.getPrice()*users.getSaleNum(); num += users.getSaleNum(); } } tv_total.setText(""+total); tv_goBuy.setText("去结算("+num+")"); }}
adapter.java
package com.example.myapplication.adapter;import android.content.Context;import android.support.annotation.NonNull;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.ImageView;import android.widget.TextView;import com.example.myapplication.R;import com.example.myapplication.bean.Users;import com.example.myapplication.view.AddSubLayout;import com.facebook.drawee.view.SimpleDraweeView;import com.squareup.picasso.Picasso;import java.util.List;import butterknife.OnClick;public class MyAdapter extends RecyclerView.Adapter { private Context context; private List list; private OnShopItemClick onShopItemClick; public MyAdapter(Context context, List list) { this.context = context; this.list = list; } public MyAdapter(OnShopItemClick onShopItemClick) { this.onShopItemClick = onShopItemClick; } public interface OnShopItemClick{ void checkBoxClick(View view,int i); void subItemClick(View view,int position); void addItemClick(View view,int position); } public void setOnShopItemClick(OnShopItemClick onShopItemClick) { this.onShopItemClick = onShopItemClick; } @NonNull @Override public MyAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.shopcar_item, viewGroup, false); ViewHolder holder=new ViewHolder(view); return holder; } @Override public void onBindViewHolder(@NonNull MyAdapter.ViewHolder mViewHolder, final int i) { Picasso.with(context).load(list.get(i).getMasterPic()).into(mViewHolder.img_shop_pic); mViewHolder.tv_shop_name.setText(list.get(i).getCommodityName()); mViewHolder.tv_shop_price.setText("¥"+list.get(i).getPrice()); mViewHolder.tv_num.setText(list.get(i).getSaleNum()+""); boolean flag = list.get(i).isFlag(); if(flag){ mViewHolder.cb_check.setChecked(true); }else { mViewHolder.cb_check.setChecked(false); } mViewHolder.cb_check.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { onShopItemClick.checkBoxClick(view,i); } }); //加减数量点击事件 mViewHolder.tv_subnum.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { onShopItemClick.subItemClick(view,i); } }); mViewHolder.tv_addnum.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { onShopItemClick.addItemClick(view,i); } }); //删除购物车数据 mViewHolder.tv_delShop.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { list.remove(i); notifyDataSetChanged(); } }); } @Override public int getItemCount() { return list.size(); } public class ViewHolder extends RecyclerView.ViewHolder { private CheckBox cb_check; private ImageView img_shop_pic; private TextView tv_shop_name; private TextView tv_shop_price; private TextView tv_subnum; private TextView tv_num; private TextView tv_addnum; private final TextView tv_delShop; public ViewHolder(@NonNull View itemView) { super(itemView); cb_check = itemView.findViewById(R.id.cb_check); img_shop_pic = itemView.findViewById(R.id.img_shop_pic); tv_shop_name = itemView.findViewById(R.id.tv_shop_name); tv_shop_price = itemView.findViewById(R.id.tv_shop_price); tv_subnum = itemView.findViewById(R.id.tv_subnum); tv_num = itemView.findViewById(R.id.tv_num); tv_addnum = itemView.findViewById(R.id.tv_addnum); tv_delShop = itemView.findViewById(R.id.tv_delShop); } }}
更多相关文章
- android 第三方分享
- 过期API_AlertDialog
- Chapter 1 Introducing Android(安卓)Studio
- 自定义线程池管理类
- Android(安卓)线性布局 LinearLayout
- 关于setOnCheckedChangeListener的使用
- Android(安卓)stdio笔记
- Android(安卓)Nine Patch图片及按钮背景
- android屏蔽listview 的item事件