//注册
反注册
定义你要传参的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));
}
});
}
}
}