GWC-小实2-鑫鑫-Adapter&主页面

shopperAdapter

package com.example.gouwuche20181117.adapter;

import android.content.Context;
import android.support.v7.widget.LinearLayoutManager;
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.CompoundButton;
import android.widget.TextView;

import com.example.gouwuche20181117.R;
import com.example.gouwuche20181117.bean.CartBean;

import java.util.List;

/**
 * Created by 红鼻子小黑 on 2018/11/17.
 */

public class ShopperAdapter extends RecyclerView.Adapter<ShopperAdapter.ViewHolder> {
    private Context context;
    private List<CartBean.DataBean> list;

    public ShopperAdapter(Context context, List<CartBean.DataBean> list) {
        this.context = context;
        this.list = list;
    }

    public interface OnShopperClickListener {
        void onShopperClick(int posotion, boolean isCheck);
    }

    private OnShopperClickListener shopperClickListener;

    public void setOnShopperClickListener(OnShopperClickListener listener) {
        this.shopperClickListener = listener;
    }

    private ProductAdapter.OnAddDecreaseProductListener productListener;

    public void setOnAddDecreaseProductListener(ProductAdapter.OnAddDecreaseProductListener listener) {
        this.productListener = listener;
    }

    @Override
    public ShopperAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_shopper, parent, false);
        ViewHolder holder = new ViewHolder(view);
        return holder;
    }

    @Override
    public void onBindViewHolder(ShopperAdapter.ViewHolder holder, final int position) {
        final CartBean.DataBean dataBean = list.get(position);
        holder.txt_shopper_name.setText(dataBean.getSellerName());

        RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(context);
        holder.rv_product.setLayoutManager(layoutManager);
        List<CartBean.DataBean.ListBean> list1 = dataBean.getList();
        final ProductAdapter productAdapter = new ProductAdapter(context, list1);
        if (productListener != null) {
            productAdapter.setOnAddDecreaseProductListener(productListener);
        }

        productAdapter.setOnproductClickListener(new ProductAdapter.OnproductClickListener() {
            @Override
            public void onproductClick(int position, boolean isChecked) {
                if (!isChecked) {
                    dataBean.setChecked(false);
                    shopperClickListener.onShopperClick(position, false);
                } else {
                    boolean isAllProductSelected = true;
                    for (CartBean.DataBean.ListBean listBean : dataBean.getList()) {
                        if (!listBean.isChecked()) {
                            isAllProductSelected = false;
                            break;
                        }
                    }
                    dataBean.setChecked(isAllProductSelected);
                    shopperClickListener.onShopperClick(position, true);
                }
                notifyDataSetChanged();
                productListener.onChage(0, 0);
            }
        });
        holder.rv_product.setAdapter(productAdapter);
        holder.cb_shpper.setOnCheckedChangeListener(null);
        holder.cb_shpper.setChecked(dataBean.isChecked());
        holder.cb_shpper.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
                dataBean.setChecked(isChecked);
                List<CartBean.DataBean.ListBean> dataBeanList = dataBean.getList();
                for (CartBean.DataBean.ListBean listBean : dataBeanList) {
                    listBean.setChecked(isChecked);
                }
                productAdapter.notifyDataSetChanged();
                shopperClickListener.onShopperClick(position, isChecked);
            }
        });
    }

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

    class ViewHolder extends RecyclerView.ViewHolder {
        private CheckBox cb_shpper;
        private TextView txt_shopper_name;
        private RecyclerView rv_product;

        public ViewHolder(View itemview) {
            super(itemview);
            cb_shpper = itemview.findViewById(R.id.cb_shopper);
            txt_shopper_name = itemview.findViewById(R.id.txt_shopper_name);
            rv_product = itemview.findViewById(R.id.rv_prouct);
        }
    }
}

productAdapter

package com.example.gouwuche20181117.adapter;

import android.content.Context;
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.CompoundButton;
import android.widget.TextView;

import com.example.gouwuche20181117.R;
import com.example.gouwuche20181117.bean.CartBean;
import com.example.gouwuche20181117.widght.ADDDecreaseView;
import com.facebook.drawee.view.SimpleDraweeView;

import java.util.List;

/**
 * Created by 红鼻子小黑 on 2018/11/17.
 */

public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.ViewHolder> {
    private Context context;
    private List<CartBean.DataBean.ListBean> list;

    public ProductAdapter(Context context, List<CartBean.DataBean.ListBean> list) {
        this.context = context;
        this.list = list;
    }
    public interface OnproductClickListener{
        void onproductClick(int position,boolean isChecked);
    }
    private OnproductClickListener productClickListener;
    public void setOnproductClickListener(OnproductClickListener listener){
        this.productClickListener  = listener;
    }


    //加减器
    public interface OnAddDecreaseProductListener{
        void onChage(int position,int num);
    }
    private OnAddDecreaseProductListener productListener;
    public void setOnAddDecreaseProductListener(OnAddDecreaseProductListener listener){
        this.productListener = listener;
    }
    @Override
    public ProductAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_product,parent,false);
        ViewHolder holder = new ViewHolder(view);
        return holder;
    }

    @Override
    public void onBindViewHolder(ProductAdapter.ViewHolder holder, final int position) {
        final CartBean.DataBean.ListBean listBean = list.get(position);
        holder.img_product.setImageURI(list.get(position).getImages().split("\\|")[0]);
        holder.txt_product_name.setText(list.get(position).getTitle());
        holder.txt_single_price.setText(String.valueOf(list.get(position).getPrice()));
        holder.adv_product.setNum(listBean.getNum());
        holder.adv_product.setOnAddDecreaseClickListener(new ADDDecreaseView.OnAddDecreaseClickListener() {
            @Override
            public void add(int num) {
                listBean.setNum(num);
                if (productListener !=null){
                    productListener.onChage(position,num);
                }
            }

            @Override
            public void dectease(int num) {
                listBean.setNum(num);
                if (productListener !=null){
                    productListener.onChage(position,num);
                }
            }
        });
        holder.cb_product.setOnCheckedChangeListener(null);
        holder.cb_product.setChecked(listBean.isChecked());
        holder.cb_product.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
                listBean.setChecked(isChecked);
                if (productClickListener !=null){
                    productClickListener.onproductClick(position,isChecked);
                }
            }
        });
    }

    @Override
    public int getItemCount() {
        return list.size();
    }
    class ViewHolder extends RecyclerView.ViewHolder{
        private CheckBox cb_product;
        private SimpleDraweeView img_product;
        private TextView txt_product_name;
        private TextView txt_single_price;
        private ADDDecreaseView adv_product;
        public ViewHolder(View itemview){
            super(itemview);
            adv_product = itemview.findViewById(R.id.adv_product);
            cb_product =itemview.findViewById(R.id.cb_product);
            img_product=itemview.findViewById(R.id.img_product);
            txt_product_name=itemview.findViewById(R.id.txt_product_name);
            txt_single_price=itemview.findViewById(R.id.txt_single_price);
        }
    }
}

mainActivity

package com.example.gouwuche20181117;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
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 com.example.gouwuche20181117.adapter.ProductAdapter;
import com.example.gouwuche20181117.adapter.ShopperAdapter;
import com.example.gouwuche20181117.bean.CartBean;
import com.example.gouwuche20181117.cart.presenter.CartPresenter;
import com.example.gouwuche20181117.cart.view.CartIView;

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

import butterknife.BindView;
import butterknife.ButterKnife;

public class MainActivity extends AppCompatActivity implements CartIView {

    @BindView(R.id.txt_edit_or_finish)
    TextView txtEditOrFinish;
    @BindView(R.id.cb_total_select)
    CheckBox cbTotalSelect;
    @BindView(R.id.txt_taotal_price)
    TextView txtTaotalPrice;
    @BindView(R.id.btn_calu)
    Button btnCalu;
    @BindView(R.id.rv_shopper)
    RecyclerView rvShopper;
    private List<CartBean.DataBean> list;
    private ShopperAdapter shopperAdapter;
    private CartPresenter cartPresenter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        initData();
        setListener();

    }

    private void setListener() {
        cbTotalSelect.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                boolean isChecked = cbTotalSelect.isChecked();
                for (CartBean.DataBean dataBean :list){
                    dataBean.setChecked(isChecked);
                    for (CartBean.DataBean.ListBean listBean : dataBean.getList()){
                        listBean.setChecked(isChecked);
                    }
                }
calculatePrice();
                shopperAdapter.notifyDataSetChanged();
            }
        });
    }

    private void initData() {

        list = new ArrayList<>();
        cartPresenter = new CartPresenter();
        shopperAdapter = new ShopperAdapter(MainActivity.this,list);
        shopperAdapter.setOnShopperClickListener(new ShopperAdapter.OnShopperClickListener() {
            @Override
            public void onShopperClick(int posotion, boolean isCheck) {
                if (!isCheck){
                    cbTotalSelect.setChecked(false);
                }else{
                    boolean isAllShopperCkecked = true;
                    for (CartBean.DataBean dataBean : list){
                        if (!dataBean.isChecked()){
                            isAllShopperCkecked = false;
                            break;
                        }
                    }
                    cbTotalSelect.setChecked(isAllShopperCkecked);
                }
                calculatePrice();
            }
        });
        shopperAdapter.setOnAddDecreaseProductListener(new ProductAdapter.OnAddDecreaseProductListener() {
            @Override
            public void onChage(int position, int num) {
                calculatePrice();
            }
        });
        RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(MainActivity.this);
        rvShopper.setLayoutManager(layoutManager);
        rvShopper.setAdapter(shopperAdapter);
        cartPresenter.attach(this);
        cartPresenter.gouwuche(75);
    }

    private void calculatePrice() {
        float tatalPrice = 0;
        for (CartBean.DataBean dataBean : list){
            for (CartBean.DataBean.ListBean listBean : dataBean.getList()){
                if (listBean.isChecked()){
                    tatalPrice += listBean.getNum() * listBean.getPrice();
                }
            }
        }
        txtTaotalPrice.setText("总价:" +tatalPrice);
    }

    @Override
    public void onSuccess(CartBean cartBean) {
        list.clear();
        list.addAll(cartBean.getData());
        shopperAdapter.notifyDataSetChanged();
    }

    @Override
    public void onFaild(Throwable t) {

    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (cartPresenter !=null){
            cartPresenter.dettach();
        }
    }
}
原创文章 63 获赞 7 访问量 6287

猜你喜欢

转载自blog.csdn.net/weixin_42416789/article/details/84223886