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);        }    }}

更多相关文章

  1. android 第三方分享
  2. 过期API_AlertDialog
  3. Chapter 1 Introducing Android(安卓)Studio
  4. 自定义线程池管理类
  5. Android(安卓)线性布局 LinearLayout
  6. 关于setOnCheckedChangeListener的使用
  7. Android(安卓)stdio笔记
  8. Android(安卓)Nine Patch图片及按钮背景
  9. android屏蔽listview 的item事件

随机推荐

  1. Android之ActivityManagerService浅谈
  2. Android Studio禁用 install run
  3. Android:使用SAX或者DOM或者pull操作XML文
  4. ReactNative全面屏(Android)适配问题
  5. android国际化(多语言)
  6. Android默认闹钟-铃声-通知提示音修改
  7. android:clipToPadding的使用详解
  8. android:AssetManager
  9. 【转】android AsyncTask 为 多任务 多线
  10. MVP 模式在 Android(安卓)中的使用