购物车逻辑

小的adpter

   package coml.bawei.dell.lianxi1.adpter;
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.CompoundButton;
import android.widget.TextView;

import com.facebook.drawee.view.SimpleDraweeView;

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

import butterknife.BindView;
import butterknife.ButterKnife;
import coml.bawei.dell.lianxi1.R;
import coml.bawei.dell.lianxi1.bean.ShopCarBean;

public class ShopCarGoodsAdpter extends RecyclerView.Adapter<ShopCarGoodsAdpter.ViewHolder> {
    private List<ShopCarBean.DataBean.ListBean> mList;
    private Context mContext;

    public ShopCarGoodsAdpter(Context mContext) {
        this.mContext = mContext;
        mList = new ArrayList<>();
    }

public void setmList(List<ShopCarBean.DataBean.ListBean> mList)
{
    this.mList = mList;
    notifyDataSetChanged();
}

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

@Override
public void onBindViewHolder(@NonNull final ViewHolder viewHolder, final int i) {
    viewHolder.checkBox.setChecked(mList.get(i).isCheck());
    viewHolder.name.setText(mList.get(i).getTitle());
    viewHolder.price.setText(mList.get(i).getPrice()+"");
    String images = mList.get(i).getImages();
    String[] split = images.split("\\|");
    viewHolder.image.setImageURI(split[0]);
    viewHolder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            mList.get(i).setCheck(isChecked);
                if (onClick!=null){
                onClick.OnClickLisenter();
            }
        }
    });
}

@Override
public int getItemCount() {
    return mList.size();
}
//如果商家选中商品
public void selectAllCheck(boolean b)
{
   for (ShopCarBean.DataBean.ListBean bean:mList){
       bean.setCheck(b);
   }
   notifyDataSetChanged();
}
public class ViewHolder extends RecyclerView.ViewHolder {
     @BindView(R.id.image_item)
    SimpleDraweeView image;
     @BindView(R.id.name_item)
    TextView name;
     @BindView(R.id.check_item)
    CheckBox checkBox;
     @BindView(R.id.price_item)
     TextView price;
    public ViewHolder(@NonNull View itemView) {
        super(itemView);
        ButterKnife.bind(this,itemView);
    }
}
onClick onClick;
public void setOnClickLisenter(onClick onClick){
    this.onClick = onClick;
}
public interface onClick{
    void OnClickLisenter();
}
}

大的adpter

  package coml.bawei.dell.lianxi1.adpter;

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

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

import butterknife.BindView;
import butterknife.ButterKnife;
import coml.bawei.dell.lianxi1.R;
import coml.bawei.dell.lianxi1.bean.GoodsBean;
import coml.bawei.dell.lianxi1.bean.ShopCarBean;

public class ShopCarAdpter extends RecyclerView.Adapter<ShopCarAdpter.ViewHolder> {
    private List<ShopCarBean.DataBean> mList;
    private Context mContext;

    public ShopCarAdpter(Context mContext) {
        this.mContext = mContext;
        mList = new ArrayList<>();
    }

    public void setmList(List<ShopCarBean.DataBean> mList) {
        this.mList = mList;
        notifyDataSetChanged();
    }

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

    @Override
    public void onBindViewHolder(@NonNull final ViewHolder viewHolder, final int i) {
         viewHolder.title.setText(mList.get(i).getSellerName());
         viewHolder.checkBox.setChecked(mList.get(i).isCheck());
         final ShopCarGoodsAdpter carGoodsAdpter = new ShopCarGoodsAdpter(mContext);
         carGoodsAdpter.setmList(mList.get(i).getList());
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(mContext);
        viewHolder.recyclerView.setAdapter(carGoodsAdpter);
        viewHolder.recyclerView.setLayoutManager(linearLayoutManager);
        viewHolder.checkBox.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v) {
                mList.get(i).setCheck(viewHolder.checkBox.isChecked());
               //调用商品的
                carGoodsAdpter.selectAllCheck(viewHolder.checkBox.isChecked());
        }
    });
    carGoodsAdpter.setOnClickLisenter(new ShopCarGoodsAdpter.onClick() {
        @Override
        public void OnClickLisenter() {
            if (onCheckOncClick!=null){
                onCheckOncClick.setOnCliclk(mList);
            }
            List<ShopCarBean.DataBean.ListBean> list = mList.get(i).getList();
            boolean selectAll=true;
            for (ShopCarBean.DataBean.ListBean listBean:list){
                if (!listBean.isCheck()){
                    selectAll=false;
                }
                viewHolder.checkBox.setChecked(selectAll);
                mList.get(i).setCheck(selectAll);
            }
        }
    });
}

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

public class ViewHolder extends RecyclerView.ViewHolder {
    @BindView(R.id.shopcar_check)
    CheckBox checkBox;
    @BindView(R.id.shopcar_title)
    TextView title;
    @BindView(R.id.shopcar_recycle)
    RecyclerView recyclerView;
    public ViewHolder(@NonNull View itemView) {
        super(itemView);
        ButterKnife.bind(this,itemView);
    }
}
onCheckOncClick onCheckOncClick;
public void setOnCheckClickLisnter(onCheckOncClick checkClickLisnter){
    this.onCheckOncClick = checkClickLisnter;
}
public interface onCheckOncClick{
    void setOnCliclk(List<ShopCarBean.DataBean> list);
}
}

价格计算

  package coml.bawei.dell.lianxi1.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.TextView;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import coml.bawei.dell.lianxi1.R;
import coml.bawei.dell.lianxi1.adpter.ShopCarAdpter;
import coml.bawei.dell.lianxi1.bean.ShopCarBean;
import coml.bawei.dell.lianxi1.presenter.IPresenterImpl;
import coml.bawei.dell.lianxi1.view.IView;

public class ShopCarActivity extends AppCompatActivity implements View.OnClickListener,IView {
    @BindView(R.id.shopcarrecycle)
    RecyclerView recyclerView;
    @BindView(R.id.sum)
    TextView sum;
    @BindView(R.id.check_all)
    CheckBox checkall;
    private String shopcarUrl="product/getCarts";
    private IPresenterImpl iPresenter;
    private ShopCarAdpter carAdpter;
    private List<ShopCarBean.DataBean> data1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_shop_car);
        ButterKnife.bind(this);
        iPresenter = new IPresenterImpl(this);
        //加载布局
        initLayout();
    }
   //加载布局
    private void initLayout(){
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
        carAdpter = new ShopCarAdpter(this);
        recyclerView.setLayoutManager(linearLayoutManager);
        recyclerView.setAdapter(carAdpter);
        getData();
        //计算
        total();
    }
     private void getData(){
         Map<String,String> map = new HashMap<>();
         map.put("uid",23421+"");
         iPresenter.requestDataPost(shopcarUrl,map,ShopCarBean.class);
     }
     //计算价格
    public void total(){
        carAdpter.setOnCheckClickLisnter(new ShopCarAdpter.onCheckOncClick()
        {
            @Override
            public void setOnCliclk(List<ShopCarBean.DataBean> list) {
                double tatal=0;
                for (int i=0;i<list.size();i++){
                    List<ShopCarBean.DataBean.ListBean> list1 = list.get(i).getList();
                    for (int j=0;j<list1.size();j++){
                       if (list1.get(j).isCheck()){
                           tatal+=list1.get(j).getPrice()*list1.get(j).getNum();
                       }
                    }
                }
                sum.setText(tatal+"");
            }
        });
    }
    //全选框的状态
    @OnClick(R.id.check_all)
    public void checkAllOnClick(){
            selectAll(checkall.isChecked());
            carAdpter.notifyDataSetChanged();
    }
    //全选框的计算
    public void selectAll(boolean b){
            double sumall =0;
           for (int i=0;i<data1.size();i++){
               ShopCarBean.DataBean dataBean = data1.get(i);
               dataBean.setCheck(b);
           List<ShopCarBean.DataBean.ListBean> list = data1.get(i).getList();
         for (int j=0;j<list.size();j++){
             list.get(j).setCheck(b);
             sumall = sumall+list.get(j).getNum()*list.get(j).getPrice();
         }
       }
       if (b){
           sum.setText(sumall+"");
       }
       else {
           sum.setText(0+"");
       }
}

@Override
public void onClick(View v) {

}

@Override
public void success(Object data) {
    if (data instanceof ShopCarBean){
        ShopCarBean shopCarBean = (ShopCarBean) data;
        data1 = shopCarBean.getData();
        carAdpter.setmList(data1);
    }
}

@Override
protected void onDestroy() {
    super.onDestroy();
    iPresenter.des();
}
	}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值