Car

public class MainActivity extends BaseActivityPresenter<MainActivityPresenter>{
    @BindView(R.id.change)
    TextView mChange;

    @Override
    public Class<MainActivityPresenter> getClassDelegate() {
        return MainActivityPresenter.class;
    }

    @Override
    public void initview() {
        super.initview();
        delegate.oncreate(mChange);
    }
}

public class MainActivityPresenter extends AppDelegate implements View.OnClickListener {
    private RecyclerView mRecyclerView;
    private MerchantsApdater apdater;
    private ImageView checked;
    private TextView sumprice,allprice;
    private List<Bean.DataBean> data1;

    @Override
    public int getLayoutId() {
        return R.layout.activity_main;
    }
    private Context context;
    @Override
    public void getContext(Context context) {
        this.context=context;
    }

    @Override
    public void initData() {
        get(R.id.jump).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                context.startActivity(new Intent(context, LiuShiActivity.class));
            }
        });
        mRecyclerView = (RecyclerView)get(R.id.recyclerview);
        //获取全选和反选的图片
        checked = (ImageView) get(R.id.iv_cricle);
        //全选的点击事件
        checked.setOnClickListener(this);
        //结算
        sumprice = get(R.id.sum_price_txt);
        //合计
        allprice = get(R.id.all_price);
        doHttp();
        mChange.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(context, "I love qyc", Toast.LENGTH_SHORT).show();
            }
        });
        result();
    }

    private void result() {

        apdater.result(new MerchantsApdater.SetOnclicklinaer() {
            @Override
            public void click(List<Bean.DataBean> list) {
                int num = 0;
                double price = 0;
                int numall=0;
                int numischecked=0;
                for (int i = 0; i < list.size(); i++) {
                    List<Bean.DataBean.ListBean> list1 = list.get(i).getList();
                    for (int j = 0; j < list1.size(); j++) {
                        numall++;
                        //选中状态
                        if (list1.get(j).isIschecked()){
                            numischecked++;
                            int num1 = list1.get(j).getNum();
                            double price1 = list1.get(j).getPrice();
                            num=num+1*num1;
                            price=price+price1*num1;
                        }

                    }
                }
                sumprice.setText("去结算"+num);
                allprice.setText("合计"+price);

                if (numall==numischecked){
                    checked.setImageResource(R.drawable.cricle_yes);
                    ischecked=true;
                }else{
                    checked.setImageResource(R.drawable.cricle_no);
                    ischecked=false;
                }
            }
        });
    }

    private void doHttp() {
        apdater = new MerchantsApdater(context);
        mRecyclerView.setAdapter(apdater);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context);
        mRecyclerView.setLayoutManager(linearLayoutManager);
        Map<String,String> map = new HashMap<>();
        map.put("uid","71");
        new HttpHelper().get("/product/getCarts",map).result(new HttpListener() {
            @Override
            public void success(String data) {
                //Toast.makeText(context, "数据+"+data, Toast.LENGTH_SHORT).show();
                Gson gson = new Gson();
                Bean bean = gson.fromJson(data, Bean.class);
                data1 = bean.getData();
                apdater.setList(data1);
            }

            @Override
            public void fail(String error) {

            }
        });
    }
    //定义boolean类型
    private boolean ischecked=true;
    //全选的点击事件
    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.iv_cricle:
                //选中状态
                if (ischecked){
                    checked.setImageResource(R.drawable.cricle_yes);
                    ischecked=false;
                    //计算价格和数量
                    priceandnum(true);
                }
                //未选中状态
                else{
                    checked.setImageResource(R.drawable.cricle_no);
                    ischecked=true;
                    //计算价格和数量
                    priceandnum(false);
                }
                break;
        }
    }
    //计算价格和数量
    private void priceandnum(boolean is) {
        double price = 0;
        int number = 0;
        //遍历
        for (int i = 0; i < data1.size(); i++) {
            List<Bean.DataBean.ListBean> list = data1.get(i).getList();
            for (int j = 0; j < list.size(); j++) {
                double price1 = list.get(j).getPrice();

                list.get(j).setIschecked(is);

                number=number+1*list.get(j).getNum();
                price+=price1*list.get(j).getNum();

            }
        }
        if (is){
            sumprice.setText("去结算"+number+"");
            allprice.setText("合计"+price+"");

        }else{
            sumprice.setText("去结算"+0);
            allprice.setText("合计"+0.00);
        }
        //刷新适配器
        apdater.notifyDataSetChanged();
    }
    private TextView mChange;

    public void oncreate(TextView mChange) {
        this.mChange=mChange;
        //Toast.makeText(context, "哈哈", Toast.LENGTH_SHORT).show();
    }

}

public class GoodsApdaterChild extends RecyclerView.Adapter<GoodsApdaterChild.MyViewHolder> {
    private Context context;
    public GoodsApdaterChild(Context context) {
        this.context=context;
    }

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

    @Override
    public void onBindViewHolder(@NonNull final GoodsApdaterChild.MyViewHolder myViewHolder, final int i) {
        //myViewHolder.image.setImageURI(list.get(i).getImages().replace("https","http").split("//|")[0]);
        myViewHolder.price.setText("价格:"+list.get(i).getPrice()+"");
                myViewHolder.name.setText(list.get(i).getTitle());
                //Glide.with(context).load(list.get(i).getImages().split("\\|")[0]).into(myViewHolder.pic);
                myViewHolder.pic.setImageURI(list.get(i).getImages().split("\\|")[0]);
                //将Bean里的num赋值
                myViewHolder.num.setText(list.get(i).getNum()+"");
                //CheckBox选中的状态
                if (list.get(i).isIschecked()){
                    myViewHolder.checkbox.setImageResource(R.drawable.cricle_yes);
                }else{
                    myViewHolder.checkbox.setImageResource(R.drawable.cricle_no);
                }
                //CheckBox点击事件
                myViewHolder.checkbox.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        //点击变为没有选中
                        if (list.get(i).isIschecked()){
                            list.get(i).setIschecked(false);
                        }else{
                            list.get(i).setIschecked(true);
                        }
                        //刷新条目
                        notifyItemChanged(i);
                        lisnaer.click();
                    }
                });

                //加
        myViewHolder.add.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                int num = list.get(i).getNum();
                list.get(i).setNum(num+1);
                notifyItemChanged(i);
                lisnaer.click();
            }
        });
            //减
        myViewHolder.jian.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                list.get(i).setNum(list.get(i).getNum()-1);
                notifyItemChanged(i);
                lisnaer.click();
            }
        });

    }

    @Override
    public int getItemCount() {
        return list.size();
    }
    private List<Bean.DataBean.ListBean> list = new ArrayList<>();
    public void setList(List<Bean.DataBean.ListBean> list) {
        //list.remove(0);
        this.list = list;
        notifyDataSetChanged();
    }


    public class MyViewHolder extends RecyclerView.ViewHolder {
        ImageView jian,add,checkbox;
        SimpleDraweeView pic;
        TextView price,name;
        EditText num;
        //ImageView pic;
        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            price = (TextView) itemView.findViewById(R.id.g_child_price);
            name = (TextView) itemView.findViewById(R.id.g_child_name);
            pic = (SimpleDraweeView)itemView.findViewById(R.id.g_image_child);
            checkbox =(ImageView)itemView.findViewById(R.id.checkbox);
            //pic = (ImageView) itemView.findViewById(R.id.recyview_right_image);
            num = itemView.findViewById(R.id.num);
            jian = itemView.findViewById(R.id.jian);
            add = itemView.findViewById(R.id.add);
        }
    }
    //接口回调
    private SetOnclicklinaer lisnaer;
    public void result(SetOnclicklinaer lisnaer){
        this.lisnaer=lisnaer;
    }
    //定义接口
    public interface SetOnclicklinaer{
        void click();
    }

}

public class MerchantsApdater extends RecyclerView.Adapter<MerchantsApdater.MyViewHolder> {
    private Context context;
    private GoodsApdaterChild apdaterChild;

    public MerchantsApdater(Context context) {
        this.context=context;
    }

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

    @Override
    public void onBindViewHolder(@NonNull MerchantsApdater.MyViewHolder myViewHolder, int i) {
        final List<Bean.DataBean.ListBean> list1 = this.list.get(i).getList();
        myViewHolder.textView.setText(this.list.get(i).getSellerName());
        apdaterChild = new GoodsApdaterChild(context);
        myViewHolder.rightChild.setAdapter(apdaterChild);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context);
        myViewHolder.rightChild.setLayoutManager(linearLayoutManager);
        apdaterChild.setList(list1);


        apdaterChild.result(new GoodsApdaterChild.SetOnclicklinaer() {
            @Override
            public void click() {
                lisnaer.click(list);
            }
        });
    }

    @Override
    public int getItemCount() {
        return list.size();
    }
    private List<Bean.DataBean> list = new ArrayList<>();
    public void setList(List<Bean.DataBean> list) {
        this.list = list;
        notifyDataSetChanged();
    }


    public class MyViewHolder extends RecyclerView.ViewHolder {
        RecyclerView rightChild;
        TextView textView;
        //ImageView pic;
        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            textView = (TextView) itemView.findViewById(R.id.s_recyview_name);
            //pic = (ImageView) itemView.findViewById(R.id.recyview_right_image);
            rightChild = (RecyclerView)itemView.findViewById(R.id.s_recyview_recyview);
        }
    }
    //接口回调
    private SetOnclicklinaer lisnaer;
    public void result(SetOnclicklinaer lisnaer){
        this.lisnaer=lisnaer;
    }
    //定义接口
    public interface SetOnclicklinaer{
        void click(List<Bean.DataBean> list);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值