购物车

//在写之前在Beean里边再写一个属性boolan类型的与价前平级
//第一个大的页面
import android.content.Context;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.CheckBox;
import android.widget.TextView;
import android.widget.Toast;

import com.google.gson.Gson;

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

import soexample.umeng.com.liujin20181022.R;
import soexample.umeng.com.liujin20181022.adapter.WaiAdapter;
import soexample.umeng.com.liujin20181022.bean.GoodsBean;
import soexample.umeng.com.liujin20181022.mvp.view.AppDelegate;
import soexample.umeng.com.liujin20181022.net.HttpHelper;

public class Fragment_one_Presenter extends AppDelegate {
    private RecyclerView mRecyclerViewget;
    private WaiAdapter waiAdapter;
    private List<GoodsBean.DataBean> list = new ArrayList<>();
    private CheckBox checkBox;
    private TextView num;
    private List<GoodsBean.DataBean> data1=new ArrayList<>();
    private TextView price;


    @Override
    public int getLayoutId() {
        return R.layout.fragment_one;
    }



    @Override
    public void initData() {
        super.initData();
        mRecyclerViewget = (RecyclerView)get(R.id.recyclerview);
        checkBox = get(R.id.check);
        price = get(R.id.tv_price);
        num = get(R.id.bt_num);
        LinearLayoutManager manager = new LinearLayoutManager(context);
        manager.setOrientation(LinearLayoutManager.VERTICAL);
        mRecyclerViewget.setLayoutManager(manager);
        waiAdapter = new WaiAdapter(context);
        mRecyclerViewget.setAdapter(waiAdapter);
        dohttp();
        checkBox.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                quan();
            }
        });
    //从适配器中获取点击事件,在从新赋值与计算
        waiAdapter.result(new WaiAdapter.Interwailistener() {
            @Override
            public void setListData(List<GoodsBean.DataBean> list) {
                double prices=0;
                int nums=0;
                int num1=0;
                int num2=0;
                for(int i=0;i<list.size();i++){
                    List<GoodsBean.DataBean.ListBean> list1 = list.get(i).getList();
                    for(int j=0;j<list1.size();j++){
                        num1++;
                        if(list1.get(j).isIschecked()){
                            num2++;
                            prices=prices+list1.get(j).getPrice()*list1.get(j).getNum();
                            nums+=list1.get(j).getNum();

                        }

                    }
                }
                if(num2<num1){
                    checkBox.setChecked(false);
                }else{
                    checkBox.setChecked(true);
                }
                price.setText("总计:"+prices+"");
                num.setText("结算("+nums+")");
                waiAdapter.setList(data1);
            }
        });
    }
  //    以下是全选与全部选的代码
    private void quan() {
        double prices=0;
        int nums=0;
        for(int i=0;i<data1.size();i++){
            List<GoodsBean.DataBean.ListBean> list = data1.get(i).getList();
            for(int j=0;j<list.size();j++){
                if(checkBox.isChecked()){
                    prices=prices+list.get(j).getPrice()*list.get(j).getNum();
                    nums+=list.get(j).getNum();
                    list.get(j).setIschecked(true);
                }else{
                    list.get(j).setIschecked(false);
                }

            }
        }
        price.setText("总计:"+prices+"");
        num.setText("结算("+nums+")");
        waiAdapter.setList(data1);
    }

    private void dohttp() {
        new HttpHelper().get("https://www.zhaoapi.cn/product/getCarts?uid=71".replace("https","http")).result(new HttpHelper.Httplistenner() {
            @Override
            public void success(String data) {
                //toast(data);
                Gson gson = new Gson();
                GoodsBean goodsBean = gson.fromJson(data, GoodsBean.class);
                data1 = goodsBean.getData();
                //Toast.makeText(context,data1+"sdf",Toast.LENGTH_SHORT).show();
                waiAdapter.setList(data1);


            }

            @Override
            public void error(String error) {

            }
        });
    }

    private Context context;
    @Override
    public void getContext(Context context) {
        super.getContext(context);
        this.context=context;
    }
    public void toast(String msg){
        Toast.makeText(context,msg,Toast.LENGTH_SHORT).show();
    }
}








第一个大的适配器去:
package soexample.umeng.com.liujin20181022.adapter;


import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;

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

import soexample.umeng.com.liujin20181022.R;
import soexample.umeng.com.liujin20181022.bean.GoodsBean;

public class WaiAdapter extends RecyclerView.Adapter<WaiAdapter.MyViewholder>{
    private List<GoodsBean.DataBean> list=new ArrayList<>();
    private Context context;
    private LiAdapter liAdapter;

    public WaiAdapter(Context context) {
        this.context=context;

    }
    public void setList( List<GoodsBean.DataBean> list){
        this.list=list;
        notifyDataSetChanged();
    }

    @NonNull
    @Override
    public WaiAdapter.MyViewholder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = View.inflate(context, R.layout.waiadapter,null);
        MyViewholder viewholder = new MyViewholder(view);
        return viewholder;
    }

    @Override
    public void onBindViewHolder(@NonNull WaiAdapter.MyViewholder myViewholder, int i) {
        myViewholder.text.setText(list.get(i).getSellerName());

        List<GoodsBean.DataBean.ListBean> list1 = list.get(i).getList();
        liAdapter = new LiAdapter(context,list1);
        //StaggeredGridLayoutManager manager = new StaggeredGridLayoutManager(3,1);
        LinearLayoutManager manager = new LinearLayoutManager(context);
        manager.setOrientation(LinearLayoutManager.VERTICAL);
        myViewholder.mRecyclerVie.setLayoutManager(manager);
        myViewholder.mRecyclerVie.setAdapter(liAdapter);
        //从小的里边传过来的适配器,下边有一个result的回调
        liAdapter.result(new LiAdapter.Interlistener() {
            @Override
            public void setListChange() {
                interwailistener.setListData(list);
            }
        });
    }

    @Override
    public int getItemCount() {
        if(list==null||list.size()==0){
            return 0;
        }
        return list.size();
    }

    public class MyViewholder extends RecyclerView.ViewHolder {
        TextView text;
        RecyclerView mRecyclerVie;

        public MyViewholder(@NonNull View itemView) {
            super(itemView);
            text = (TextView)itemView.findViewById(R.id.titl);
            mRecyclerVie = itemView.findViewById(R.id.recyview);
        }
    }
    //回调
    private Interwailistener interwailistener;
    public  void  result(Interwailistener interwailistener){
        this.interwailistener=interwailistener;
    }
    public interface Interwailistener{
        void setListData(List<GoodsBean.DataBean> list);
    }
}





最小的一个适配器
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;

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

import soexample.umeng.com.liujin20181022.R;
import soexample.umeng.com.liujin20181022.activity.SelfView;
import soexample.umeng.com.liujin20181022.bean.GoodsBean;


public class LiAdapter extends RecyclerView.Adapter<LiAdapter.ViewHolder>{
    private Context context;
    private List<GoodsBean.DataBean.ListBean> list1=new ArrayList<>();
    public LiAdapter(Context context, List<GoodsBean.DataBean.ListBean> list1) {
        this.context=context;
        this.list1=list1;
    }

    @NonNull
    @Override
    public LiAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = View.inflate(context, R.layout.liadapter,null);
        ViewHolder viewHolder = new ViewHolder(view);
        return viewHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull LiAdapter.ViewHolder viewHolder, final int i) {
        viewHolder.checkBox.setChecked(list1.get(i).isIschecked());
        viewHolder.title.setText(list1.get(i).getTitle());
        viewHolder.price.setText(list1.get(i).getPrice()+"");
        Glide.with(context).load(list1.get(i).getImages().split("\\|")[0]).into(viewHolder.pic);
        给他写一个点击事件
        viewHolder.checkBox.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
            然后判断是否选中,最后刷新适配器
                if(list1.get(i).isIschecked()){
                    list1.get(i).setIschecked(false);
                }else{
                    list1.get(i).setIschecked(true);
                }
                notifyItemChanged(i);
                interlistener.setListChange();
            }
        });
    }

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

    public class ViewHolder extends RecyclerView.ViewHolder {
        TextView title,price;
        ImageView pic;
        private final CheckBox checkBox;
        private final SelfView snum;

        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            checkBox = itemView.findViewById(R.id.cb_check1);
            pic = itemView.findViewById(R.id.text_pic);
            title =itemView.findViewById(R.id.text_title);
            price = itemView.findViewById(R.id.price);
            snum = itemView.findViewById(R.id.sf_num);
        }
    }
    //定义接口回调
    private Interlistener interlistener;
    public  void  result(Interlistener interlistener){
        this.interlistener=interlistener;
    }
    public interface Interlistener{
        void setListChange();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值