加减号实现

------------------------------------------widgh-----togglebbutton----------------------------------------------------

public class togglebutton extends LinearLayout implements View.OnClickListener {
private Button jia;
private Button jian;
private TextView text_num;
public togglebutton(Context context) {
super(context);

}

public togglebutton(Context context, @Nullable AttributeSet attrs) {
    super(context, attrs);
init(context);
}

private void init(Context context) {
    LayoutInflater.from(context).inflate(R.layout.include3, this);
    jia = findViewById(R.id.jia);
    jian = findViewById(R.id.jian);
    text_num = findViewById(R.id.text_num);


    jia.setOnClickListener(this);
    jian.setOnClickListener(this);


}


@Override
public void onClick(View v) {
    String s = text_num.getText().toString();
    int i = Integer.parseInt(s);//强转
    switch (v.getId()){
        case R.id.jia:
            if(addAndMinusu!=null){
                addAndMinusu.add();
            }
        break;
        case R.id.jian:
            if(i>1){
                if(addAndMinusu!=null){
                    addAndMinusu.minus();
                }
            }
        break;
    }
}



//定义的接口回调
private   AddAndMinus addAndMinusu;
public interface AddAndMinus{
    void add();
    void minus();
}
public void setAddAndMinusu(AddAndMinus addAndMinusu){
    this.addAndMinusu=addAndMinusu;
}

}

把定义的类引用到布局中进行展示
然后在里层的适配器中获取网络接口的num数量
写加减号的接口回调

--------------------------------------------inneradapter---------------------------

//数量
text_num = holder.togglebutton.findViewById(R.id.text_num);
text_num.setText(list.get(position).getNum()+"");
//加减的接口回调
holder.togglebutton.setAddAndMinusu(new togglebutton.AddAndMinus() {
@Override
public void add() {
list.get(position).setNum(list.get(position).getNum()+1);
bean1 bean1 = new bean1();
EventBus.getDefault().post(bean1);//发送普通事件
}

              @Override
              public void minus() {
                  list.get(position).setNum(list.get(position).getNum()-1);
                  bean1 bean1 = new bean1();
                  EventBus.getDefault().post(bean1);//发送普通事件
              }
          });

-----------------------mainactivity中-----------------
1、EventBus.getDefault().register(this);//注册eventbus–

       cb_01.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(cb_01.isChecked()){
                    for (int i = 0; i <news.getData().size() ; i++) {
                        news.getData().get(i).setOutchecked(true);
                        for (int j = 0; j <news.getData().get(i).getList().size() ; j++) {
                            news.getData().get(i).getList().get(j).setInnerchecked(true);
                        }
                    }
                }else {
                    for (int i = 0; i <news.getData().size() ; i++) {
                        news.getData().get(i).setOutchecked(false);
                        for (int j = 0; j <news.getData().get(i).getList().size() ; j++) {
                            news.getData().get(i).getList().get(j).setInnerchecked(false);
                        }
                    }

                }
                //总价的方法
                initzong();
               adapter.notifyDataSetChanged();
            }


        });

    }

   private void initzong() {
        int zong=0;
        for (int i = 0; i < news.getData().size(); i++) {
            for (int j = 0; j < news.getData().get(i).getList().size(); j++) {
                if(news.getData().get(i).getList().get(j).isInnerchecked()){
                    zong+=news.getData().get(i).getList().get(j).getNum()*news.getData().get(i).getList().get(j).getPrice();
                }
            }
        }
        zj.setText(zong+"");
        adapter.notifyDataSetChanged();

    }


 //接收加减的方法,,,,,主线程
@Subscribe(threadMode = ThreadMode.MAIN)
   public void  msg(bean1 ha){
        initzong();
   }

3、销毁
    @Override
    protected void onDestroy() {
        super.onDestroy();
        presenterimp.datachview(this);
        EventBus.getDefault().unregister(this);//解注
    }

猜你喜欢

转载自blog.csdn.net/qq_42859231/article/details/82829785
今日推荐