EventBus的 使用

//注册
反注册
定义你要传参的Bean
然后传值

package com.hsz.com.siyue26;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;
import android.widget.Toast;

import com.hsz.com.siyue26.adapter.YHAdapter;
import com.hsz.com.siyue26.base.BaseData;
import com.hsz.com.siyue26.base.BaseEntity;
import com.hsz.com.siyue26.base.BaseSpus;
import com.hsz.com.siyue26.base.BaseView;
import com.hsz.com.siyue26.base.BaseZdyBean;
import com.hsz.com.siyue26.base.Dianji;
import com.hsz.com.siyue26.base.GroupEvent;

import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;

import java.util.List;

public class moni3 extends AppCompatActivity implements BaseView<BaseEntity> {
    ShopPresenter shopPresenter;
    private List<BaseSpus> spus;
    private RecyclerView yh_recylce_view;
    private YHAdapter yhAdapter;
    private CheckBox quanxuan_check;
    private TextView yh_zongjia;
    private TextView yh_shuliang;
    private List<BaseData> data1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_moni3);

        yh_recylce_view = findViewById(R.id.yh_recylce_view);
         quanxuan_check= findViewById(R.id.quanxuan_check);
        yh_zongjia = findViewById(R.id.yh_zongjia);
        yh_shuliang = findViewById(R.id.yh_shuliang);

        shopPresenter=new ShopPresenter(this);

        shopPresenter.shop_data();

        //注册
        EventBus.getDefault().register(this);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        EventBus.getDefault().unregister(this);
    }

    @Override
    public void Success(final BaseEntity data) {

        if (data.getStatus().equals("200")){
             data1 = data.getData();
            yh_recylce_view.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false));


            yhAdapter = new YHAdapter(this, data1);

            yh_recylce_view.setAdapter(yhAdapter);

        }else{
            Toast.makeText(this,"错误",Toast.LENGTH_SHORT).show();
        }

        quanxuan_check.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (quanxuan_check.isChecked()){
                    for (int i=0;i<data1.size();i++){
                        data1.get(i).setOne(true);
                        for (int j=0;j<data1.get(i).getSpus().size();j++){
                            data1.get(i).getSpus().get(j).setTwo(true);
                        }
                    }
                }else{
                    for (int i=0;i<data1.size();i++){
                        data1.get(i).setOne(false);
                        for (int j=0;j<data1.get(i).getSpus().size();j++){
                            data1.get(i).getSpus().get(j).setTwo(false);
                        }
                    }
                }
                yhAdapter.notifyDataSetChanged();
                CountPrice();
            }
        });


    }
    private void CountPrice(){
        int sumPrice=0;
        int ShuZhi=0;
        for (int i=0;i<data1.size();i++){
            List<BaseSpus> spus = data1.get(i).getSpus();
            for (int j=0;j<spus.size();j++){
                BaseSpus baseSpus = spus.get(j);
                if (baseSpus.isTwo()){
                    String praise_num = baseSpus.getPraise_num();
                    String id = baseSpus.getId();
                    int i1 = Integer.parseInt(praise_num);
                    int i2 = Integer.parseInt(id);
                    sumPrice+=i1*i2;
                    ShuZhi+=i1;
                }
            }
        }
        yh_zongjia.setText(sumPrice+"");
        yh_shuliang.setText(ShuZhi+"");

    }
    @Override
    public void Faildata(String msg) {

    }

    @Subscribe
    public void Zdy(BaseZdyBean zdyBean){
        int adapterpostion = zdyBean.getAdapterpostion();
        int postion = zdyBean.getPostion();
        //获取数据
        List<BaseData> data1 = yhAdapter.getData1();

        BaseData baseData = data1.get(postion);

        List<BaseSpus> spus = baseData.getSpus();
        BaseSpus baseSpus = spus.get(adapterpostion);

        int num = zdyBean.getNum();
        baseSpus.setPraise_num(num+"");
        if (baseSpus.isTwo()){
            CountPrice();
        }


    }

    @Subscribe
    public void ZdyCheck(GroupEvent event){
        int adapterEvent = event.getAdapterEvent();

        List<BaseData> data1 = yhAdapter.getData1();

        BaseData baseData = data1.get(adapterEvent);

        baseData.setOne(event.isCheck());

        List<BaseSpus> spus = baseData.getSpus();
        for (int i=0;i<spus.size();i++){
            spus.get(i).setTwo(event.isCheck());
        }
        //刷新适配器
        yhAdapter.notifyDataSetChanged();
        CountPrice();


    }

    @Subscribe

    public void Danji(Dianji event){
        int adapterEvent = event.getAdpterPostion();
        int postion = event.getPostion();

        List<BaseData> data1 = yhAdapter.getData1();

        BaseData baseData = data1.get(postion);

        List<BaseSpus> spus = baseData.getSpus();

        BaseSpus baseSpus = spus.get(adapterEvent);

        
    }
}
自定义加减器Bean

public class BaseZdyBean {
private int postion;
private int adapterpostion;
private int num;

public int getPostion() {
    return postion;
}

public void setPostion(int postion) {
    this.postion = postion;
}

public int getAdapterpostion() {
    return adapterpostion;
}

public void setAdapterpostion(int adapterpostion) {
    this.adapterpostion = adapterpostion;
}

public int getNum() {
    return num;
}

public void setNum(int num) {
    this.num = num;
}

public BaseZdyBean(int postion, int adapterpostion, int num) {
    this.postion = postion;
    this.adapterpostion = adapterpostion;
    this.num = num;
}

}
//自定义加减器

public class Zdy extends LinearLayout {

    private TextView jia;
    private TextView jian;
    private TextView shu;

    public Zdy(Context context) {
        this(context,null);
    }

    public Zdy(Context context,  AttributeSet attrs) {
        this(context, attrs,0);
    }

    public Zdy(Context context,  AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        data(context);

    }
    private void data(Context context){
        View view=LayoutInflater.from(context).inflate(R.layout.zdy_item,this,true);

        jia = view.findViewById(R.id.jia);
        jian = view.findViewById(R.id.jian);
        shu = view.findViewById(R.id.shu);
        shu.setText("1");
        jia.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                int i = Integer.parseInt(shu.getText().toString());
                i++;
                shu.setText(i+"");
                if (lisstenter!=null){
                    lisstenter.Shu(i);
                }
            }
        });
        jian.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                int i = Integer.parseInt(shu.getText().toString());
                if (i>0){
                    i--;
                }else{
                    Toast.makeText(getContext(), "最小数量为0", Toast.LENGTH_SHORT).show();
                }


                shu.setText(i+"");
                if (lisstenter!=null){
                    lisstenter.Shu(i);
                }
            }
        });

    }
    public Lisstenter lisstenter;

    public void SetLisstenter ( Lisstenter lisstenter){
        this.lisstenter=lisstenter;
    }

    public interface Lisstenter{
        public void Shu(int shu);
    }

    public void SetSum(int newSub){
        if (newSub>0){
            shu.setText(newSub+"");
        }else{
            shu.setText("1");
            Toast.makeText(getContext(), "最小数量为0", Toast.LENGTH_SHORT).show();
        }
    }
}

商品发送的通知

public class YHAdapter extends RecyclerView.Adapter<YHAdapter.MyViewHolder> {
    Context context;
    List<BaseData> data1;
    private Sh_Adapter sh_adapter;


    public List<BaseData> getData1() {
        return data1;
    }

    public void setData1(List<BaseData> data1) {
        this.data1 = data1;
    }

    public YHAdapter(Context context, List<BaseData> data1) {
        this.context = context;
        this.data1 = data1;

    }

    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view=LayoutInflater.from(context).inflate(R.layout.th_item,viewGroup,false);
        return new MyViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, int i) {
        myViewHolder.yh_name.setText(data1.get(i).getName());
        myViewHolder.yh_checkbox.setChecked(data1.get(i).isOne());
        myViewHolder.sh_recycle_view.setLayoutManager(new LinearLayoutManager(context,LinearLayoutManager.VERTICAL,false));

        BaseData baseData = data1.get(i);


        //调用的方法
        myViewHolder.bind(baseData);

    }

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

    public class MyViewHolder extends RecyclerView.ViewHolder {

        private final TextView yh_name;
        private final RecyclerView sh_recycle_view;
        private final CheckBox yh_checkbox;

        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            yh_name = itemView.findViewById(R.id.yh_name);
            sh_recycle_view = itemView.findViewById(R.id.sh_recycle_view);
            yh_checkbox = itemView.findViewById(R.id.yh_checkbox);
        }

        public void bind(BaseData baseData){
            sh_adapter = new Sh_Adapter(context, baseData.getSpus(),getAdapterPosition());
            sh_recycle_view.setAdapter(sh_adapter);
            yh_checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    EventBus.getDefault().post(new GroupEvent(getAdapterPosition(),isChecked));
                }
            });
        }
    }
}

商家的通知

public class Sh_Adapter extends RecyclerView.Adapter<Sh_Adapter.MyViewHolde> {
     Context context;
    List<BaseSpus> spus;
    int postion;




    public Sh_Adapter(Context context, List<BaseSpus> spus, int postion) {
        this.context = context;
        this.spus = spus;
        this.postion = postion;

    }

    @NonNull
    @Override
    public MyViewHolde onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view=LayoutInflater.from(context).inflate(R.layout.sh_item,viewGroup,false);
        return new MyViewHolde(view);
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolde myViewHolde, int i) {
        myViewHolde.sh_name.setText(spus.get(i).getName());
        myViewHolde.sh_price.setText(spus.get(i).getPraise_num());
        myViewHolde.simple_view.setImageURI(spus.get(i).getPic_url());
        myViewHolde.shang_check.setChecked(spus.get(i).isTwo());

        String praise_num = spus.get(i).getPraise_num();
        int i1 = Integer.parseInt(praise_num);
        myViewHolde.zdy.SetSum(i1);
    }

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

    public class MyViewHolde extends RecyclerView.ViewHolder {

        private final SimpleDraweeView simple_view;
        private final TextView sh_name;
        private final TextView sh_price;
        private final CheckBox shang_check;
        private final Zdy zdy;

        public MyViewHolde(@NonNull View itemView) {
            super(itemView);
            simple_view = itemView.findViewById(R.id.simple_view);
            sh_name = itemView.findViewById(R.id.sh_name);
            sh_price= itemView.findViewById(R.id.sh_price);
            shang_check = itemView.findViewById(R.id.shang_check);
            zdy = itemView.findViewById(R.id.addsum);

            //发送通知
            zdy.SetLisstenter(new Zdy.Lisstenter() {
                @Override
                public void Shu(int shu) {
                    int adapterPosition = getAdapterPosition();
                    EventBus.getDefault().post(new BaseZdyBean(postion,adapterPosition,shu));
                }
            });

            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    int adapterPosition = getAdapterPosition();
                    EventBus.getDefault().post(new Dianji(postion,adapterPosition));
                }
            });
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值