------------------------------------------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);//解注
}